2013-02-27 8 views
6

git branch --merged git配管コマンドを使用する方法はありますか?配管コマンドを使用してgitブランチを結合しました

私は、あなたにコミットハッシュとそれに対応する参照名を与えるgit for-each-refのようなコマンドがあることを知っています。コミットが別のコミットから到達可能かどうかを知るコマンドがありますか(これは基本的には--mergedです)。

+1

なぜこれをやりたいですか? –

+0

私は 'git branch --merged'と同等のことをスクリプトで行いたいが、磁器の出力(例えば" * master "、" origin/HEAD- origin/master "など)を扱いたくないので、 – EnToutCas

+0

さて、 '-f -o /tmp/branch.log -e trace = execve git branch -merged'を' strace'して、 'git'が実際に何をしているかを見てください。代わりに、 'git'はあなたのためにそれを行います:' GIT_TRACE = 2 git branch --merged'。 – twalberg

答えて

2

git merge-base --independent X Y Zは、まだそれらが他のブランチにマージされていないことを教えてくれます。

さらに、git merge-base --is-ancestor X YはXがYの祖先であるかどうかを教えてくれますが、git branch --mergedを実装するには非効率的な方法です。N個のブランチに対してN^2回実行する必要があるためです。

+1

これは比較的新しい機能です。古い方法は 'git merge-base X Y'を実行し、マージベースがXに等しいかどうかを調べることでした。 –

関連する問題