簡體   English   中英

你如何找到誰將一個 git commit 合並到一個分支中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM