鉴于合并冲突,
示例:
MERGE Conflict!
|\
| \
| \
A B
| /
|/
C
|
|
B和A的提交都改变了foo.txt,造成了冲突。
当B合并到A中时,我希望A或B中的所有提交但在C之前改变了foo.txt
答案 0 :(得分:2)
如果我正确理解您的问题,那么您需要查找影响给定文件的所有提交 之前分支分歧:
你首先想弄清楚两个分支的分歧:
git merge-base A B
这应该让你得到提交C的哈希。
获取未合并文件的列表:
git diff --name-only --diff-filter=U
然后你可以这样做:
git log <hash of C> -- <file path>
为每个未合并的文件找到已影响该文件的提交列表,包括提交C。
答案 1 :(得分:1)
鉴于您的上述历史,请:
git log A B ^C -- foo.txt
将显示更改文件A
的{{1}}或B
分支中的所有提交(我假设您确实希望在之后提交 foo.txt
,而不是之前的 - 但如果您想要C
之前的提交,则可以执行C
)。如果您实际上不知道git log C -- foo.txt
的哈希值,则可以使用C
来确定它。如果您想查看每次提交中的实际更改,而不仅仅是提交列表,请使用git merge-branch A B
。