我有一個git倉庫與許多分支,其中一些已經合併,一些沒有。由於分支機構的數量很大,我怎麼知道哪些分支機構尚未合併?我會避免做一個章魚合併重新所有的分支。git發現未分支分支
199
A
回答
333
試試這個:
git branch --merged master
它做什麼它在錫說(已合併到master
名單分支機構)。您也可以拉了逆:
git branch --no-merged master
如果不指定master
,如..
git branch --merged
那麼它會告訴你已經被合併到當前HEAD
分支(所以如果您使用的是master
,則相當於第一條命令;如果使用的是foo
,則相當於git branch --merged foo
)。
git branch -r --no-merged origin/master
25
如果分支已經再次合併,合併也不會:
您還可以通過指定-r
標誌和裁判覈對,可以是本地或遠程的比較上游分支做任何事情。因此,您不必擔心「合併」已合併的分支機構。
要回答你的問題,你可以簡單地發出
git branch --merged
看到合併分支機構或
git branch --no-merged
看到未合併分支。您當前的分支是隱含的,但您可以根據需要指定其他分支。
git branch --no-merged integration
將向您顯示尚未合併到integration
分支的分支機構。
36
您還可以使用-r參數表明,沒有合併到主遠程分支:
git branch -r --merged master
git branch -r --no-merged
+14
或'-a'可以同時看到遠程和本地 –
1
下面的腳本會發現所有origin/*
分支是當前分支的未來
#!/bin/bash
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo -e "Current branch: \e[94m$CURRENT_BRANCH\e[0m"
echo ''
git branch -a | grep remotes/origin/ | while read LINE
do
CMD="git diff --shortstat remotes/origin/${CURRENT_BRANCH}...${LINE}"
if $CMD | grep ' file' > /dev/null; then
echo -e "\e[93m$LINE\e[0m" | sed 's/remotes\/origin\///'
$CMD
echo ''
fi
done
相關問題
- 1. git分支(沒有分支)
- 2. Git分支模型實現
- 3. 將git分支分成兩個分支?
- 4. Git中央分支開發
- 5. 導出Git發佈分支
- 6. Git:分支?
- 7. Git分支django
- 8. Git - Gitlab分支
- 9. 與GIT分支
- 10. Git rebasing分支
- 11. Git分支開發和master有分歧
- 12. Git Master分支被毀壞分支
- 13. 將hg分支轉換爲git分支?
- 14. git rebase分支與所有子分支
- 15. 在git中創建分支的分支?
- 16. 管理Git分支和子分支?
- 17. 如何在Git中分支分支?
- 18. git分支前後地方分支?
- 19. git將分支合併到分支
- 20. git分支列表與上游分支
- 21. Git - 從某個分支創建分支
- 22. 沒有開發分支的特性分支模型的Git分支策略
- 23. 如何將未創建主分支到GIT中的主分支
- 24. 主分支未在git分支命令中列出
- 25. 如何讓現有的git分支跟蹤遠程SVN分支?
- 26. 如何讓現有的git分支跟蹤遠程分支?
- 27. Git:提交「主」分支出現在其他分支
- 28. 讓現有的Git分支跟蹤JGit的遠程分支?
- 29. git遠程分支已刪除,但仍出現在'分支-a'
- 30. Git分支從當前分支的另一個分支
如果你將'foo'合併到'master'中,它會出現在'git branch --merged master'列表中。但是如果你再次提交'foo'會發生什麼?它是否不再出現在該列表中,或者它不會出現,因爲即使它具有新的提交,它在*處被合併到「master」中? –
@CraigOtis它將不再出現在列表中。 '--merged'只列出*完全*合併到給定分支中的分支。 – Amber
和'gitk --remotes --not origin/master'會顯示每個分支上沒有合併爲主的提交。 – yoyo