【问题标题】:Find unmerged Git branches?查找未合并的 Git 分支?
【发布时间】:2012-08-29 20:26:53
【问题描述】:

我有一个包含许多分支的 Git 存储库,其中一些已经合并,有些没有。由于分支的数量很大,如何确定哪些分支尚未合并?我想避免必须进行“章鱼”合并和重新合并已经合并的分支。

【问题讨论】:

标签: git git-merge branching-and-merging


【解决方案1】:

试试这个:

git branch --merged master

它会按照 tin 上的说明进行操作(列出已合并到 master 中的分支)。您还可以使用以下方法提取逆:

git branch --no-merged master

如果不指定master,例如...

git branch --merged

然后它将显示已合并到当前HEAD 中的分支(因此,如果您在master,则相当于第一个命令;如果您在foo,则相当于@ 987654329@).

您还可以通过指定 -r 标志和要检查的 ref 来比较上游分支,可以是本地或远程:

git branch -r --no-merged origin/master

【讨论】:

  • 如果将foo 合并到master 中,它将出现在git branch --merged master 列表中。但是如果你再次提交foo 会发生什么?它是否不再出现在该列表中,或者即使它有新的提交,它也在某一时刻合并到master中?
  • @CraigOtis 它将不再出现在列表中。 --merged 仅列出完全合并到给定分支中的分支。
  • 想象一下……一个易于理解和使用的 git 答案!
  • 有没有办法在不检查分支的情况下获取列表?喜欢指向服务器然后获取列表?
  • 我发现,git branch --no-merged master 仅显示我的本地分支机构。它不显示任何未在我的计算机上签出并由其他人创建的分支。
【解决方案2】:

你也可以使用-r参数来显示没有合并到master的远程分支:

git branch -r --merged master

git branch -r --no-merged

                         

【讨论】:

  • -a 同时查看远程和本地
  • 最后一个应该是 git branch -r --no-merged master 吗?
【解决方案3】:

如果一个分支已经合并,再次合并它不会做任何事情。所以你不必担心“重新合并”已经合并的分支。

要回答你的问题,你可以简单地发出

 git branch --merged

查看合并的分支或

 git branch --no-merged

查看未合并的分支。您当前的分支是隐含的,但您可以根据需要指定其他分支。

 git branch --no-merged integration

将显示尚未合并到integration 分支的分支。

【讨论】:

    【解决方案4】:

    下面的脚本将找到当前分支前面的所有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
    

    The up-to-date version of the script

    【讨论】:

    • 链接已失效.....
    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 2017-04-17
    • 2023-03-06
    • 2011-10-16
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    相关资源
    最近更新 更多