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

2017-06-09 16:33:13 +08:00
 zo

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

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

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

git show commit1..commit2 --author=你 --pretty= --name-only | sort -u
mingyun
2017-06-10 09:25:18 +08:00
@SoloCompany 学习了
jiangbingo
2017-06-10 11:19:09 +08:00
根本需求在于快速查看代码提交者的 commit,那就直接使用 Pcharm 的 version control 吧。

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

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

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

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

© 2021 V2EX