git | 追踪历史

695 阅读2分钟

追踪某个文件的修改历史

git log --pretty=oneline filename	查看该文件的提交历史

git show commit_id	显示具体某次提交的修改

git show commit_id filename		查看某个提交,某个文件的变化

二分法排查某次commit引进了bug

git bisect
二分法查找bug是那次commit引进的

1.git bisect start   开始使用bisect查找

2.git bisect bad HEAD  设置HEAD为已知坏版本

3.git bisect good 89d6e8347c94a26f6f60cc8eeff287ba51c6144c(k提交对应的ID) 在提交历史中找出最近的可用版本

bisect会将你的git提交reset到HEAD和k的中间版本f;
此时,检查该版本是否正常;
若正常,则输入git bisect good,bisect会继续将git提交reset到f和HEAD的中间版本。
若不正常,则输入git bisect bad,bisect则会将git提交reset到f和k的中间版本。

4、git bisect reset
结束bisect操作,回到bisect start前的状态

查看某个文件每次提交的修改地方

git log -p filename
查看每次提交的diff,也就是修改了什么

这样就可以这个文件那次提交中出的问题

查看文件中每一行最后的提交者

git blame filename
查看文件中每一行的最后一次提交者

其他

git log --name-only (列表)
git whatchanged --stat (列表+修改统计)
每次修改的文件列表

git reflog
查看从文件clone开始的所有操作记录日志;
git log可以显示所有提交过的版本信息,不包括已经被删除的 commit 记录和 reset 的操作
git reflog是显示所有的操作记录,包括提交,回退的操作。一般用来找出操作记录中的版本号,进行回退。