簡體   English   中英

為什么 git branch --merged 不顯示所有合並的分支?

[英]Why does git branch --merged not show all merged branches?

我創建了一個功能分支,然后為它創建了一個 PR。 我的 PR 被接受並合並了。 PR 說,“可以安全地刪除分支。” 但是當我在主分支上執行git branch --merged時,我沒有看到合並的分支。 我做錯了什么?

如果不知道確切的工作流程,這是一個很難回答的問題。

我假設自從你“創建了一個 PR”,你就分叉/克隆了一個非本地存儲庫。 然后,您在本地存儲庫中創建了一個新分支,進行了更改以添加功能,並將這些更改提交到您的本地功能分支。

除此之外,它有點模糊。 以下是您可能采取的幾個步驟:

  1. 你說你提交了一個 PR,但你並沒有說你曾經將功能分支與本地主分支合並。 這表明你可能會下一個工作流程像這樣的 如果是這種情況,並且您在本地存儲庫中運行git branch --merged ,那么您沒有看到列出的功能分支的原因是您從未將功能分支合並到本地存儲庫中的master IMO,這是最有可能的情況。 嘗試從本地主分支運行git pull <name of your remote--probably origin> master ,然后再次嘗試運行git branch --merged

  2. 快進可能會引起一些混亂,但它本身不會造成您所描述的問題。

  3. 您始終可以在給定分支上運行git log以查看其完整的提交歷史記錄。 您可以檢查 master 的提交歷史並將其與 origin/master 的提交歷史進行比較,以找出差異。

希望這可以幫助!

我也一直在為此苦苦掙扎。 我們正在使用gitlab 的 MR flow ,這可能是最簡單的基於合並的 git flow。

我注意到的是,當 MR 合並時,我們選擇Squash Commits 因此,這會影響 git 歷史記錄並阻止--merged標志按預期工作。

我有類似的問題,當功能分支被合並到開發和開發被合並到主。 此類分支未顯示

git branch --merged master, 
but shown for
git branch --merged develop

但是最好按照如何刪除所有已合並的 Git 分支中的建議使用 -r 標志

遠程 git 清除:

git branch -r --merged | grep -v '\*\|master\|develop\|release' | sed 's/origin\///' 
| xargs -n 1 git push --delete origin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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