高级应用之一:
二分法查找错误版本:
当前日志
$
git log --oneline
ccda9d2 added test1
dd518f7 test zu
88095f9 dasfdasf
3dc0ec9 first ok
启动查找
$ git bisect start
标志当前版本为坏版本
$ git bisect bad
标志某个好版本作为起点
$ git bisect good 3dc0ec9
Bisecting: 0 revisions left
to test after this (roughly 1 step)
[dd518f77d5a48624965f2c88d1b7a7ddb3095556]
test zu =》 自动跳转到中间版本
$ git log --oneline
88095f9 dasfdasf
3dc0ec9 first ok
如果当前版本为坏版本,标志他
$ git bisect bad
Bisecting: 0 revisions left
to test after this (roughly 0 steps)
[88095f941af6e4a5aca06b33b40818bce7431636]
dasfdasf =》 自动跳转到中间版本
如果当前版本为好版本,标志他
$ git bisect good
dd518f77d5a48624965f2c88d1b7a7ddb3095556
is the first bad commit =》 找到第一个坏版本并继续打印坏版本修改概要
commit
dd518f77d5a48624965f2c88d1b7a7ddb3095556
Author: Xiaofeng Zu
<[email protected]>
Date: Sun Sep 28 17:08:18 2014 +0800
test zu
:100644 100644
e5a209a255a7744382daef6a1335dcd8b629d9cc
0f552bfb85849fc12d5abcd9b701481acfdf25f7 M
test.c
如果需要,可以用下面命令切换到第一个坏版本
$ git checkout bisect/bad
Previous HEAD position was
88095f9... dasfdasf
HEAD is now at dd518f7...
test zu
查找结束,复位
$ git bisect reset
高级应用之二:
查看任何文件的历史版本并转存
git show 提交ID:文件路径
> 转存文件路径
查看某个文件的修改记录
git log <文件路径>
git blame <文件路径>
全部或某个文件切换到历史版本
git checkout <提交ID>
git checkout <提交ID>
-- <文件路径>