也就是说,我有兴趣找到两个提交都被修改的文件(或者如果更容易的话,在两个差异中)。不好意思,如果这很简单,但我对git仍然很陌生。如何找到两个git提交之间的交集?
4
A
回答
2
更新
后从@PaulHicks输入(git diff
而不是git diff-tree
...感谢保罗)和规避错误描述here即| sort
这里是我的答案更新:
comm -12 <(git diff --no-commit-id --name-only -r 3fe29472016343 | sort) <(git diff --no-commit-id --name-only -r 9fd796b1998bb7d5 | sort)
老回答 我不相信有一个开箱即用的命令来完成你想实现的任务。但是,如果你在* nix平台你可以试试这个:
comm -12 <(git diff-tree --no-commit-id --name-only -r COMMIT1SHA1key) <(git diff-tree --no-commit-id --name-only -r COMMIT2SHA1key)
不幸的是,我从窗口中键入:(..hence不能检查忙啥(我要回家试试)
这里我的想法是git的差异树会产生一个文件列表像here。
这link显示此COMM -12作品上ls
。
编织既有可能是如何工作的是我的猜想
1
您可以使用git diff --name-only sha1^ sha1
获取单个提交中更改的文件列表。
git diff --name-only $1^ $1 | sort > file1
git diff --name-only $2^ $2 | sort > file2
comm -12 file1 file2
rm file1 file2
或者,如果你正在使用在Linux/UNIX bash中,你可以从@维克拉姆的回答,避免使用漂亮的绝招:所以,你可以在脚本中它有两个提交SHA-1作为参数做到这一点临时文件:
comm -12 < (git diff --name-only $1^ $1) < (git diff --name-only $2^ $2)
相关问题
- 1. WebStorm和Git:如何找到两个提交之间的差异?
- 2. 如何找到两个git提交之间的合并?
- 3. 删除两次提交之间的git提交
- 4. 如何获得这两个git提交之间的interdiff?
- 5. 找到2个git提交之间可用的分支
- 6. 我如何找到空的git提交?
- 7. Ruby Grit:找到两个分支之间的提交
- 8. IntelliJ和Git:如何看到提交和两个较旧提交之间的差异?
- 9. 查找两个集合之间的交集MongoDB中
- 10. 检查两个Path2D之间的交集
- 11. 两个列表之间的交集F#
- 12. 计算git提交之间的时间
- 13. git:两个非常类似的提交之间的区别?
- 14. 如何通过提交消息找到git提交仓库?
- 15. 获取Git中两个标签之间的新提交列表?
- 16. 列表git提交两个日期之间的主分支
- 17. git从两个分支之间的差异创建提交
- 18. 显示提交两个实例之间的git分支
- 19. Git将多个提交集群集合成一个提交
- 20. 的Git - DIFF在老枝之间提交
- 21. 的Git包含任意之间提交
- 22. 查找两个候选字符串列表之间的交集
- 23. 使用Git,我该如何记录两个特定分支之间合并提交的所有提交?
- 24. 如何找到两个Django查询集的交集?
- 25. libgit2:查找两个标签之间的所有提交?
- 26. 找出何时提交到git/github?
- 27. 将本地Git提交到git-svn的一个提交中
- 28. git合并重新提交提交到另一个提交?
- 29. 在git提交之间插入宏
- 30. 如何应用C++中两个列表之间的交集?
为什么你需要这个?也许有更好的方法来解决你的问题。 – michas
我们有兴趣找到可能在大型提交中丢失的更改。 –