git 有什么办法可以比对任意两次提交中一个作者修改了哪些文件吗?

2017 年 6 月 9 日
 zo

比如比对当前 HEAD 和上一个版本更新时我修改了哪些文件

5000 次点击
所在节点    git
17 条回复
zo
2017 年 6 月 9 日
或者可以通过 grep 过滤出来?
bingoAI
2017 年 6 月 9 日
git reflog 查看 hash id 号
git diff id1 id2
cxbig
2017 年 6 月 9 日
具体实现看 git diff 和 git log 文档,这种问题 Google 比较快。
zo
2017 年 6 月 9 日
@jiangbingo 这个方法并不能过滤某一个作者的提交。假设开发团体够大的话,想要找到自己提交的东西也是挺难的
zo
2017 年 6 月 9 日
@cxbig 我找过了,但是我找不到
cxbig
2017 年 6 月 9 日
@zo 怎么可能。。。
试试这个:
git --no-pager log --author=YOUR_NAME | head -10
blakejia
2017 年 6 月 9 日
我觉得 git blame 应该贴合你需求一点。但是一个命令估计也解决不了。
blakejia
2017 年 6 月 9 日
应该是 git log 拿到文件列表,和 Hash ID,然后去对应文件找你有动过的那些行,做个列表打印出来。得写个小工具了
cxbig
2017 年 6 月 9 日
@zo
参数怎么用说的明明白白啊:
https://git-scm.com/docs/git-log#git-log---authorltpatterngt
可以加--branches 过滤分支
可以加--before 和--after 过滤提交时间

先用 git log 搜你提交的历史,拿到 hash 再用 git diff 比较版本间文件改动
zo
2017 年 6 月 9 日
@blakejia 我去看看 git blame
zo
2017 年 6 月 9 日
@cxbig git diff 显示的是所有人的更改,时间久了的话,找不到哪些是自己提交的。。。。
wlsnx
2017 年 6 月 9 日
git log 有 --stat 可以显示修改了哪些文件,-p 可以看到修改内容
momocraft
2017 年 6 月 9 日
git show commit1..commit2 --author=你
zo
2017 年 6 月 9 日
@wlsnx 用--name-only 就可以了。这样可以直接拿来用
SoloCompany
2017 年 6 月 10 日
@zo 算是自问自答了吗?结合 #13 就是

git show commit1..commit2 --author=你 --pretty= --name-only | sort -u
mingyun
2017 年 6 月 10 日
@SoloCompany 学习了
bingoAI
2017 年 6 月 10 日
根本需求在于快速查看代码提交者的 commit,那就直接使用 Pcharm 的 version control 吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/367266

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX