我们的 git 存储库中有一个文件在工作中,我想找出谁将这个文件合并到一个分支中。
我有识别引入文件的提交(比如说552a976f1a25f9bad57efb9455e951f6b7b3367f
)的提交哈希,并且我知道文件在分支上staging
。
如何找到将上述提交合并到staging
分支中的提交的哈希?我想找到合并的用户,以及合并的日期。
我们的 git 存储库中有一个文件在工作中,我想找出谁将这个文件合并到一个分支中。
我有识别引入文件的提交(比如说552a976f1a25f9bad57efb9455e951f6b7b3367f
)的提交哈希,并且我知道文件在分支上staging
。
如何找到将上述提交合并到staging
分支中的提交的哈希?我想找到合并的用户,以及合并的日期。
git log -1 --merges <hash>
将显示自提交以来最近的合并提交日志<hash>
(包括它本身)。
如果我理解正确,您有 C5,并且您正在搜索 C6。如果是这种情况,您可能正在寻找这个:
git rev-list --merges HEAD --not <hash> --reverse
它将为您提供哈希提交后发生的合并提交列表。我HEAD
在此命令中使用,相信您master
在示例中或staging
在您的情况下。
在不太复杂的环境中,您可能正在寻找提交后发生的第一次合并......但如果您没有这种机会,您可以尝试:
git log --graph --decorate HEAD...<hash>^
或任何用于探索您的历史的图形工具(例如gitk
)...
git log <commit-id>..<branch> --ancestry-path --merges --reverse
<commit-id>
将为您提供自您感兴趣以来发生的合并列表以及<branch>
. 根据您的合并工作流程,您感兴趣的合并可能是列表中的第一个或下一个。
将历史的相关部分可视化将很有帮助
git log --oneline --graph --decorate --ancestry-path --boundary <commit-id>..<branch>
在图表底部附近寻找您<commit-id>
的(它将属于“图表边界” - 标有o
而不是*
)。