[英]How do you find who merged a git commit into a branch?
我們的 git 存儲庫中有一個文件在工作中,我想找出誰將這個文件合並到一個分支中。
我有識別提交的提交哈希(比如說552a976f1a25f9bad57efb9455e951f6b7b3367f
),它引入了文件,我知道文件在分支staging
。
如何找到將上述提交合並到staging
分支的提交的哈希? 我想找到合並的用戶,以及合並的日期。
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
而不是*
標記)。
如果我理解正確,您有 C5,並且您正在搜索 C6。 如果是這種情況,您可能正在尋找這個:
git rev-list --merges HEAD --not <hash> --reverse
它將為您提供哈希提交后發生的合並提交列表。 我在此命令中使用HEAD
相信您在示例中處於master
狀態,或者在您的情況下處於staging
狀態。
在不太復雜的環境中,您可能正在尋找提交后發生的第一次合並......但如果您沒有這種機會,您可以嘗試:
git log --graph --decorate HEAD...<hash>^
或任何用於探索您的歷史的圖形工具(例如gitk
)...
git log -1 --merges <hash>
將顯示自<hash>
提交(包括其自身)以來最近的合並提交日志。
在target
分支中的所有合並提交都具有來自target
分支的提交作為第一父級的情況下,如果您使用“標准” git 工作流程(例如使用 CI 合並時)會發生這種情況,那么您可以使用git-合並時。
用法:
git-when-merged <commit> <target branch>
git-when-merged 的工作方式是(引用文檔):在每個包含 COMMIT 作為祖先的 BRANCH 的第一父歷史上查找最舊的提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.