1. 按作者搜索
git log --author=<pattern>
例如,我现在的git中有两个提交,作者分别是bob和allen:
现在想搜索出bob的提交:git log --author=bob
这样就只会打印出bob的提交。
2.查看文件的改动
有时我们想查看某个文件在哪几次commit中进行了修改,那么可以这样进行查找:
git log 文件名
例如,在我当前的目录下有这么些文件:
现在我想查看一下git_search.js文件的提交历史,那么可以这样操作:
git log git_searcj.js
可以看到在这两次提交中对git_search.js进行的改动。
3. 查看每次提交的具体修改
如果想查看关于该文件每次提交的详细情况,可以使用git log -p
:
这样就打印出所有提交的diff信息。
同样的,如果在该命令后面加上文件名,则可以看到这个文件相关提交的具体改动:
4. 筛选需要的修改
有时候我们想看一下某些代码是什么时候添加或者删除的,那么可以使用git log -S 内容
比如,我想看看我的代码里console.log('git search')
这段代码是什么时候引入的,可以用 git log -S "console.log('git search')"
命令:
就可以看到是allen添加这段话的。
5. 对提交说明(commit message)进行筛选
当需要对提交说明中的关键字进行筛选时,可以使用git log --grep 关键字
进行筛选,例如,我想对提交说明中rebase相关的提交进行筛选:git log --grep rebase
:
可以看到与'rebase'字符串相关的提交都会被筛选出来。
6. -p命令的灵活运用
对于上述命令,我们可以结合-p
灵活的打印出每个commit具体的修改,例如git log -p --grep rebase
:
这样就可以看到每次提交的diff情况。
7. 总结
本文介绍了一些git log的深入使用方法,可以更方便的在终端场景下进行查找、筛选的操作。