Git 显示提交的日志信息(本地库)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| $ git reflog
$ git log
$ git log -g
$ git log --pretty=raw
$ git log --pretty=oneline
$ git log --oneline
$ git log --oneline -2
$ git log --skip 2
$ git log --name-status
$ git log -p
$ git log --graph
|
Git 搜索提交的日志信息(本地库)
1 2 3 4 5 6 7 8
| $ git log --author peter
$ git log --grep keywords
$ git log -p -- config/my.config
|
Git 恢复到某个提交的历史版本(本地库)
此操作适用于文件的删除或修改操作 commit 之后,想找回已删除的文件,或者将文件还原到修改前的某个历史版本,成功的前提是被删除或者被修改的文件必须曾经 commit 到本地库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| $ git reflog 4630fa3 HEAD@{0}: commit: update message 346f528 HEAD@{1}: commit: update message b86daaa HEAD@{2}: commit: update message fdbbf3c HEAD@{3}: commit: update message 775a0c5 HEAD@{4}: commit: update message 42a3d41 HEAD@{5}: commit: update message 81f4118 HEAD@{6}: commit: update message 0c05880 HEAD@{7}: commit: update message 670e552 HEAD@{8}: commit (initial): update message
$ git reset --hard 346f528
$ git reset --hard HEAD^
$ git reset --hard HEAD~1
$ git reset --hard HEAD
# reset操作的定义域(必须明确指定,否则可能造成数据不可恢复的丢失) $ git reset --soft 只在本地库移动HEAD指针,暂存区和工作区都不会受影响 $ git reset --mixed 默认选项,在本地库移动HEAD指针,暂存区同步到指定的提交,工作区不受影响 $ git reset --hard 在本地库移动HEAD指针,暂存区和工作区都同步到指定的提交,强烈建议预先执行一次commit操作,否则可能造成数据不可恢复的丢失
|
Git 将某个文件回滚到指定版本
在使用 Git 时,可能会遇到这种问题:一次 commit 了多个文件,但是提交后发现有一个文件不应该被提交,如果把整个 commit 回滚会很麻烦(因为正确提交的文件也会被回滚),这时就需要单独回滚某个文件,具体操作如下:
1 2 3 4 5 6 7 8
| $ git log api.json
$ git checkout 2d1ed0 api.json
$ git commit -m api.json
|
Git 比较文件差异(本地库)
1 2 3 4 5 6 7 8 9 10
| $ git diff api.json
$ git diff HEAD api.json
$ git diff HEAD^ api.json
|