初始化操作
初始化一个新的git仓库
git init
初始化一个新的git仓库,并为其添加名称
git init <项目名称>
克隆远程仓库到本地
git clone <项目地址>
克隆远程仓库到本地指定目录
git clone <项目地址> <本地目录>
克隆远程仓库指定分支,默认是master分支
git clone <项目地址> -b <分支名称>
克隆远程仓库指定分支(默认是master分支),到本地指定目录
git clone <项目地址> -b <分支名称> <本地目录>
配置操作
获取config信息
git config --list
设置提交代码时的用户名和邮箱
git config [--global] user.name "xxx"
git config [--global] user.email "xxx@xx.com"
文件操作
添加指定文件到暂存区
git add <文件名>
添加指定目录到暂存区,包括子目录
git add <文件目录名>
添加当前目录下的所有文件到暂存区
git add .
移除跟踪指定的文件,并从本地仓库的文件夹中删除
git rm <文件路径>
移除跟踪指定的文件夹,并从本地仓库的文件夹中删除
git rm -r <文件夹路径>
移除跟踪指定的文件,在本地仓库的文件夹中保留该文件
git rm --cached <文件路径>
提交操作
把暂存区中的文件提交到本地仓库
git commit
把暂存区中的文件提交到本地仓库并添加描述信息
git commit -m "描述信息"
把所有修改、已删除的文件提交到本地仓库中,不包括未被本库跟踪的文件,等同于先调用了“git add -u”
git commit -a -m "描述信息"
使用一次新的提交,替代上一次的提交,如果代码没有任何变化,则用来改写上一次提交的描述信息
git commit --amend -m "描述信息"
远程仓库操作
列出已经存在的远程仓库
git remote
列出远程仓库的详细信息
git remote -v
添加远程仓库
git add remote <远程仓库的URL地址>
修改远程仓库的别名
git remote rename <远程仓库的别名> <新的别名>
删除指定名称的远程仓库
git remote remove <远程仓库的别名>
修改远程仓库的url地址
git remote set-url <远程仓库的别名> <新的远程仓库的地址>
远程同步操作
将远程仓库所有分支的最新版本全部取回本地
git fetch <远程仓库的地址>
将远程仓库的指定分支的最新版本取回本地
git fetch <远程仓库的地址> <分支名>
从远程仓库获取最新的更改并将其合并到本地分支
git pull
将当前分支推送到指定的远程分支
git push <远程仓库的地址> <分支名>
将所有分支推送到远程
git push --all
把指定的分支合并到当前所在的分支下
git merge <分支名称>
分支操作
列出本地的所有分支
git branch
列出本地的所有分支,并显示最后一次提交
git branch -v
切换到已存在的指定分支
git checkout <分支名称>
新建一个分支,并切换到该分支
git checkout -b <分支名>
新建一个新分支
git branch <分支名>
修改分支名称,如果不指定原分支名则为当前所在分支
git branch -m [<原分支名>] <新的分支名称>
强制修改分支名称
git branch -M [<原分支名>] <新的分支名称>
删除指定的本地分支
git branch -d <分支名称>
强制删除指定的本地分支
git branch -D <分支名称>
差异比较操作
比较单签文件和暂存区中文件的差异,显示没有暂存起来的更改
git diff
比较暂存区中的文件和上次提交时的差异
git diff --cached
git diff --staged
比较当前文件和上次提交时的差异
git diff HEAD
查看从指定的版本之后改动的内容
git diff <commit ID>
比较两个分支之间的差异
git diff <分支名称1> <分支名称2>
还原操作
重置暂存区,但文件不受影响,相当于将用"git add"命令跟心到暂存区的内容撤出暂存区,可以指定文件,没有指定commit ID 则默认为当前HEAD
git reset [<文件路径>]
git reset --mixed [<文件路径>]
将HEAD的指向改变,撤销到指定的提交记录,文件未修改
git reset <commit ID>
git rest --mixed <commit ID>
将HEAD的指向改变,撤销到指定的提交记录,文件未修改,相当于调用"git reset --mixed"命令后又做了一次"git add"
git reset --soft <commit ID>
将HEAD的指向改变,撤销到指定的提交记录,文件也修改
git reset --hard <commit ID>