私はたくさんのリモートgitブランチを持っています:
remotes/origin/<branchname>
等...
私はそれらのほとんどがおそらく削除できることを知っています。
- どのマスターに完全にマージされたかを確認するための最良の方法は何ですか?これらを最初に削除したいと思います。
- 残りのブランチのマージされていないコミットを確認するための最良の方法は何ですか?
私はたくさんのリモートgitブランチを持っています:
remotes/origin/<branchname>
等...
私はそれらのほとんどがおそらく削除できることを知っています。
あなたgit branch -r --merged master
がしたいことをしますか?
この情報を取得する1つの方法は次のとおりです。
git branch -vv
これにより、各ブランチが最新であるか、進んでいるか、遅れているかが一覧表示されますが、人間が読み取れるように設計されているため、後でスクリプトを作成するために簡単に解析することはできません。そのルートを取る必要がある場合は、より良い方法があるかもしれません。
GUIの1つを見ると、マージされていないブランチも視覚的にわかりますが、ブランチの数によっては、面倒な場合があります。
編集:別のオプションはこれです:
git show-branch --independent | xargs git name-rev
これは基本的に、他のどのブランチからも到達できないブランチを示していますがmaster
、リストに含まれている可能性があるため、出力を少し整理する必要があるかもしれません...
git branch -d
私の最初の選択は、 (小文字のd)で削除してみることです。ブランチが完全にマージされていない場合、これは失敗します。
このgit log
コマンドは、ブランチが互いにどのように関連しているかを確認するために使用します。
log --oneline --decorate = short --graph --all --simplify-by-decoration
装飾されていないコミットを上記に追加するには、--simplify-by-decoration
log --oneline --decorate = short --graph --all
また、あなたの質問への直接の答えではありませんが、どのコミットに注意が必要かを確認することに関連して、このバージョンは、プッシュされていないロモート追跡を備えたブランチのコミットのみを表示します。
log --oneline --decorate = short --graph --all --branches --not --remotes