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 

该脚本的最新版本