我有一个带有许多分支的Git存储库,其中一些已经合并,一些还没有合并。由于分支的数量相当大,我如何确定哪些分支尚未合并?我希望避免不得不进行“章鱼式”合并和重新合并已经合并的分支。
当前回答
试试这个:
git branch --merged master
它做它在锡上说(列出已合并到master的分支)。你也可以用:
git branch --no-merged master
如果你没有指定master,例如…
git branch --merged
然后它会显示已经合并到当前HEAD的分支(所以如果你在master上,这相当于第一个命令;如果你在foo上,它相当于git branch -merged foo)。
你也可以通过指定-r标志和一个要检查的ref来比较上游分支,可以是本地的,也可以是远程的:
git branch -r --no-merged origin/master
其他回答
试试这个:
git branch --merged master
它做它在锡上说(列出已合并到master的分支)。你也可以用:
git branch --no-merged master
如果你没有指定master,例如…
git branch --merged
然后它会显示已经合并到当前HEAD的分支(所以如果你在master上,这相当于第一个命令;如果你在foo上,它相当于git branch -merged foo)。
你也可以通过指定-r标志和一个要检查的ref来比较上游分支,可以是本地的,也可以是远程的:
git branch -r --no-merged origin/master
下面的脚本将找到当前分支前面的所有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
脚本的最新版本
如果一个分支已经被合并,那么再次合并它不会有任何作用。因此,您不必担心“重新合并”已经合并的分支。
要回答您的问题,您可以简单地发出
git branch --merged
查看合并的分支或
git branch --no-merged
查看未合并的分支。您当前的分支是隐含的,但如果您愿意,您可以指定其他分支。
git branch --no-merged integration
将显示尚未合并到集成分支的分支。
你也可以使用-r参数来显示未合并到master的远程分支:
git branch -r --merged master
git branch -r --no-merged
推荐文章
- 如何点Go模块的依赖在Go。Mod到回购中的最新提交?
- 为什么调用git分支——unset-upstream来修复?
- Windows git“警告:LF将被CRLF取代”,这是警告尾巴向后吗?
- git中的哈希冲突
- git可以自动在空格和制表符之间切换吗?
- Git暂存文件列表
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时