参考:https://git-scm.com/book/zh/v2
基本操作
init
$ git init
初始化仓库,命令操作成功会在当前目录下面生成一个.git目录;
status
$ git status
显示Git仓库状态;
add
$ git add hello.c
向暂存区添加文件。Git仓库中存在3个区域:工作树区、暂存区、最新提交。工作树表示当前工作目录中的文件状态,最新提交表示当前已提交的最新版本状态,而暂存区介于两者之间。修改一个文件后首先需要使用Git add将修改的文件移入暂存区,再从暂存区提交到最新版本;
commit
$ git commit -m "first commit"
将暂存区的内容实际保存到版本的历史记录中。-m后添加提交说明,如果没有-m则在提交后直接进入一个编辑器用于编写更详细的信息,若没有编写信息直接退出则终止提交操作;
log
$ git log
查看历史提交记录
$ git log --pretty-short
查看历史提交记录,但只显示第一行提交信息
$ git log hello.c
查看hello.c的历史提交记录
$ git log -p hello.c
查看hello.c的历史提交记录,并显示每次提交之间的差别
diff
$ git diff
查看工作树与暂存区之间的差别
$ git diff HEAD
查看工作树与最新提交版本之间的差别
分支操作
$ git branch
查看分支情况,分支名称前带‘*’表示当前分支;
$ git checkout -b branch-A
创建分支branch-A并切换到这个分支
$ git branch branch-B
仅创建分支branch-B
$ git checkout branch-B
切换到分支branch-B
$ git checkout -
回到上一分支
合并分支
将branch-B分支的修改内容合并到master分支
$ git checkout master
先切换到master分支
$ git merge --no-ff branch-B
合并branch-B分支的提交信息
$ git log --graph
图表显示分支合并情况
回溯历史版本
$ git reset --hard e2017de24c78c5dcaed263783b262a0558732992
后面的数字为希望回溯的历史版本的哈希值
$ git reflog
查看仓库当前操作日志
修改上一次提交信息
$ git commit --amend
更改历史
$ git rebase -i HEAD~2
(备注:HEAD后是飘号,飘号后的数字表示包括HEAD在内需要更新历史记录的对象个数)
执行命令后会将历史记录信息排列在编辑器中
修改pick为fixup可删除这条记录,其他操作看说明