git发现没有分支的分支
我有一个与许多分支的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
您也可以使用-r参数来显示没有合并到master中的远程分支:
git branch -r --merged master git branch -r --no-merged
如果一个分支已经合并,再次合并将不会执行任何操作。 所以你不必担心“重新合并”已经合并的分支机构。
要回答你的问题,你可以简单地问题
git branch --merged
看到合并的分支机构
git branch --no-merged
看到没有入住的分支。 你当前的分支是隐含的,但你可以指定其他分支,如果你想。
git branch --no-merged integration
将向您展示尚未合并到分支机构的分支机构。
以下脚本将查找当前分支前面的所有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
该脚本的最新版本