1、git初始化
$ git init // 初始化项目,产生.git文件
2、提交文件
$ git add file // 提交指定文件到本地暂存区
$ git add . // 提交所有修改的文件
$ git commit -m '提交代码的备注信息' // 将代码提交到本地仓库【在提交代码时不加`-m`会报错】
$ git push // 提交代码到远程仓库
$ git push origin HEAD:refs/for/[branch-name] // 将代码提交到一个临时评审区
3、查看分支/提交状态
$ git status // 查看代码状态[查看本地工作区和暂存区的修改]
$ git branch // 查看当前分支(查看本地分支)
$ git branch -r // 查看远程分支
$ git branch -a // 查看所有分支【包含本地和远端分支】
$ git remote show origin // 查看远端地址、远端分支以及与本地分支的对应关系
4、切换分支
$ git checkout -b 分支名 // 创建新的分支,并且切换到新的分支【-b表示创建新的分支】
$ git checkout 分支名 // 切换分支名
$ git checkout -b test origin/test // 切换分支到test,并且关联远端分支test
5、删除分支
$ git branch -r -d 远程分支名 // 删除远程分支
$ git branch -d 本地分支名 // 删除本地分支
$ git branch -D 本地分支名 // 强制删除本地分支
$ git push origin --delete 远端分支名-删除远端分支
$ git remote prune origin // 删除远端不存在的分支
【注意】:git fetch和git pull只能同步分支信息,但是无法删除分支
6、关联分支
$ git remote add origin 远端的分分支名 // 关联本地分支与远端分支
7、合并分支
$ git merge 要合并的分支名 // 合并代码到指定分支
// 将test分支合并到master:先切换分支到master,然后将test分支合并到master
$ git checkout master
$ git merge test
// 将test分支合并到master
$ git checkout test
$ git rebase master // 合并代码到test分支
8、代码回退
$ git reset --hard head^ // 回退到上一步操作
$ git reset HEAD // 版本区文件覆盖缓存区文件
9、重写工作区
$ git checkout . // 把当前目录所修改的文件从HEAD中签出并且把它恢复成未修改的样子;
// 在使用git checkout时,如果对应的文件被修改过,则修改会被覆盖掉。
10、撤销修改
// 当我们修改完代码,发现有问题时
$ git checkout -- file // file需要撤销的文件名
// 使用该方式撤销文件的修改之后,没有日志记录信息,无法还原其他信息
11、暂存更改
$ git stash // 暂存(存储在本地,并将项目本次操作还原)
$ git stash pop // 使用上一次暂存,并将这个暂存删除,使用该命令后,如果有冲突,终端会显示,如果有冲突需要先解决冲突(这就避免了冲突提交服务器,将冲突留在本地,然后解决)
$ git stash list // 查看所有的暂存
$ git stash clear // 清空所有的暂存
$ git stash drop [-q|--quiet] [<stash>] // 删除某一个暂存,在中括号里面放置需要删除的暂存ID
$ git stash apply // 使用某个暂存,但是不会删除这个暂存
12、文件修改信息
$ git diff // 查看本地文件修改信息,对比的是本地文件与远端文件
$ git diff --cached // 对比的是缓存区和版本区之间的差距
13、日志信息
$ git reflog // 查看提交日志
$ git log // 查看日志
$ git log --online --graph // 查看历史的合并信息