311

私は多くのブランチを持つGitリポジトリを持っていますが、それらのいくつかはすでにマージされており、いくつかはマージされていません。ブランチの数が非常に多いので、どのブランチがまだマージされていないかをどのように判断できますか?「タコ」のマージと、すでにマージされているブランチの再マージを行う必要はありません。

4

4 に答える 4

519

これを試して:

git branch --merged master

缶に書かれていることを行います(にマージされたブランチを一覧表示しますmaster)。次の方法で逆を引き上げることもできます。

git branch --no-merged master

指定しない場合master、例えば。

git branch --merged

次に、現在にマージされたブランチが表示されますHEAD(したがって、をオンmasterにしている場合は最初のコマンドと同等です。オンをしている場合はとfoo同等ですgit branch --merged foo)。

-rローカルまたはリモートのフラグとチェック対象の参照を指定して、アップストリームブランチを比較することもできます。

git branch -r --no-merged origin/master
于 2012-09-05T06:57:15.193 に答える
63

このパラメーターを使用して、-rマスターにマージされなかったリモートブランチを表示することもできます。

git branch -r --merged master

git branch -r --no-merged

                         
于 2014-04-22T16:32:29.687 に答える
28

ブランチがすでにマージされている場合、それを再度マージしても何も起こりません。したがって、すでにマージされているブランチの「再マージ」について心配する必要はありません。

あなたの質問に答えるために、あなたは単に発行することができます

 git branch --merged

マージされたブランチを表示するには、

 git branch --no-merged

マージされていないブランチを表示します。現在のブランチが暗黙指定されていますが、必要に応じて他のブランチを指定できます。

 git branch --no-merged integration

まだブランチにマージされていないブランチが表示されますintegration

于 2012-09-05T06:57:36.903 に答える
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

スクリプトの最新バージョン

于 2017-07-13T12:26:36.283 に答える