与えられたコミットを含むすべてのブランチの表示に関する情報が見つかりました。しかし、新しく作成されたブランチが自分のリモートにコミットされていないことを見つけるにはどうすればよいですか?一意のコミットを含まないすべてのgitブランチを一覧表示する方法
答えて
あなたが欲しいものを達成する必要がありgit branch --merged
これを実行していないマージされていないコミットされたすべての枝を、見ることができます。コミットのない新しく作成されたブランチは、マージされた古いブランチとまったく変わりません。
質問の意味はわかりません。
ここは簡単な例です。このグラフを描画すると仮定します。
...--o--o--o--o <-- master
\
o--X <-- br1, br2
master
は、チップコミットを指しています。ブランチbr1
とbr2
はどちらも独自のtipコミットを指していますが、どちらのコミットもコミットX
です。その意味で、これらのブランチ名の少なくとも1つは冗長です。
さて、あなたは言った:新しく
それはリモート追跡ブランチ名を見つけるのは簡単だ作成された私のリモコンの
支店:彼らは
refs/remotes/
名前空間でのものです。origin
というリモートのものはrefs/remotes/origin/
です。しかし、 "新しく作成された"というのはGitでは意味がありません。ブランチ名はいつでも作成または破棄でき、コミットを指し示します。これまでに描画されたグラフが与えられた場合、
X
の前にコミットを指す新しいbr3
を追加できます。我々はorigin
にそれを行うと、その後git fetch
を実行すると、我々が得る:これは本当に同じ ある...--o--o--o--o <-- master \ o <-- origin/br3 \ X <-- br1, br2
グラフを犯します。私はちょうど
X
を新しい行に移動したので、名前に入るスペースがあった。origin/br3
。それはにならないよう、私たち自身のbr1
とbr2
名の両方を持つ冗長意味で、origin/br3
-isを品名 -は、我々はすでに保持しないでしょうコミットを保持します。しかし、はとは異なります。
git branch
オプション--contains
、--merged
、および--no-merged
(git for-each-ref
で利用できるようになりました同様に、Gitの2.7.0以降)でまさに上のいくつかのバリエーションで、「あるか祖先ではない」ため、単にエン一斉テストですwhat-elseに対してテストされています。バックこのグラフに行くが、より多くの名前を追加:...--U--V--Y--Z <-- master \ W--X <-- br1, br2
グラフは
U
がコミットラベルされた他のすべての祖先であることを教えてくれる、Y
はW
がそうでX
の祖先である、そして、Z
の祖先です。W
がY
のない祖先である、しかし、「後方」のリンクのみのノードをコミット-leftwardsとして、これらのグラフ図面-のでW
に戻っV
に行き、Y
はバックV
になりますが、でW
にY
接続しませんすべて。これらの "祖先です"テストの場合、コミットは常に自分自身の祖先とみなされます。つまり、これらは厳密にはより小さい値ではなく、以下である。
実行中:
git branch --contains <id>
コミットを意味する:各ブランチ名について、そのヒントを調べる。 (Z
、X
、次にX
)再度、名前付きコミット<id>
がヒントの祖先であるかどうかを確認します。その場合は、ブランチ名を出力してください。したがって、コミットをU
とすれば、すべてのブランチ名が得られますが、コミットをX
とすれば、br1
とbr2
になります。実行中
git branch --merged [<commit>]
は、各ブランチ名に対して、そのチップコミットを参照することを意味します。 (Z
,、およびX
)。次に、tipコミットが先ほどコミットしたコミットの祖先であるかどうかを確認します。名前を付けなかった場合はHEAD
です。その場合は、そのブランチ名を出力します。したがって、今すぐコミットする場合はX
、br1
とbr2
が表示されます。ただし、U
という名前を付けると、Z
とX
はU
の祖先ではないため、にはというブランチ名が付けられます。実行中
git branch --no-merged [<commit>]
は、各ブランチ名に対して、そのチップコミットを参照することを意味します。次に、tipコミットが、先ほど指名したコミットの先祖か、HEAD
かを確認します。 がでない場合は、ブランチ名を印刷します。また、これらはすべて単純な "祖先である"テストであり、
≤祖先テストの左右に行くハッシュをコミットgit branch
はすべてのブランチ名に対して単純に実行します。--contains
、--merged
、および--no-merged
制御:
- 。
- "yes"または "no"の結果がブランチ名を出力するかどうか。
は(テストが「ノー」。そのために、手動でループを綴るする必要があると言う場合にのみ、何
--does-not-contain
左側の引数のハッシュ-IDを置くためのテストが、印刷はありません。)
- 1. Gitログ - 特定の単語で始まらないすべてのコミットを一覧表示する方法
- 2. トピックブランチ内のすべてのコミットを一覧表示する
- 3. SVN内のすべてのブランチを一覧表示する方法
- 4. ファイルが変更されていないすべてのgitコミットを一覧表示します
- 5. Git:想定していないすべてのファイルを一覧表示する
- 6. DANE TLSAを含むすべてのDNSレコードを一覧表示する方法
- 7. Google +のすべての+1を一覧表示する方法
- 8. すべてのVOBのフォルダパスを一覧表示する方法
- 9. コミットを含まないブランチを表示
- 10. すべてのcassandraテーブルを一覧表示する方法
- 11. Nugetですべてのパッケージを一覧表示する方法
- 12. すべてのKafka zookeeperブートストラップサーバーを一覧表示する方法
- 13. 2つのGit repos(すべてのブランチ)の違いを一覧表示します
- 14. 特定のファイルを含んでいないすべてのコミットを一覧表示
- 15. プリッシュされていないGitタグを一覧表示する方法
- 16. gitすべての利用可能なコマンドを一覧表示します
- 17. 与えられたファイルのすべてのコミットを一覧表示します。
- 18. すべての検索一致をオブジェクト一覧に表示する方法
- 19. 特定のコミット以来コミットを一覧表示するには?
- 20. git:コミットを1つのブランチに表示する方法
- 21. Woocommerceで有効な支払い方法をすべて一覧表示する
- 22. スタートアッププログラムを一覧表示する方法
- 23. Git:先週のすべてのTODOメッセージを一覧表示するには?
- 24. plsql null値を含むすべてのtable.columnを一覧表示します。
- 25. 参加しているすべてのチームを一覧表示
- 26. タグが他のブランチのコミットを指しているときに、最後のリリースからすべてのコミットを一覧表示する
- 27. 現在のブランチ以外のすべてのマージされたブランチを一覧表示しますか?
- 28. gitの履歴に特定の文字列を含むすべてのファイルを一覧表示するには
- 29. アクティブな(実行中の)アプリケーションの一覧を一覧表示で表示する
- 30. Android:一度にすべての項目を一覧表示しない
* --mergedを指定すると、指定されたコミットにブランチのみがマージされます(つまり、指定されたコミットからアクセス可能な分岐を持つブランチ)。* – RomanPerekhrest
そのコマンドが私の出発点です。しかし、私たちのワークフローでは、何もコミットしていないブランチを持つことは非常に一般的です(すべてのフィーチャーブランチの開始方法です)。私は、統合されたブランチからそれらのブランチを分離して開発したいと考えています。 –