我有一个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