web-dev-qa-db-ja.com

マージ後にbranchをどうするか

masterbranch1の2つのブランチがありました。 branch1masterにマージし直しただけで、そのブランチは完成です。それを削除するべきですかそれともただそれをまわりに置いておくべきですか?削除するとデータが失われますか?

277
Alison

マージ後、ブランチを削除しても安全です。

git branch -d branch1

さらに、gitは、まだ完全にマージしていないと判断した場合には警告します(そしてブランチの削除を拒否します)。まだ完全にマージされていないブランチを(git branch -Dで)強制的に削除した場合は、マージされていないコミットを元に戻すためのいくつかのトリックを実行する必要があります(下記参照)。

分岐を維持する理由はいくつかあります。例えば、それが機能ブランチであるなら、あなたはまだそのブランチの内側にあるその機能にバグ修正をすることができることを望むかもしれません。

リモートホスト上のブランチも削除したい場合は、次のようにします。

git Push Origin :branch1

これはリモート上のブランチを強制的に削除します(これは既にチェックアウトされているリポジトリには影響しませんし、プッシュアクセスを持つ誰かがそれを再プッシュ/作成することを妨げることはありません)。


git reflogは最近チェックアウトされたリビジョンを示します。最近のリポジトリ履歴でチェックアウトしたブランチもそこに表示されます。それ以外の点では、git fsckはgitでコミットが失われた場合に選択されるツールになります。

342
Jonas Schäfer

私のすべてのブランチはFix/fix-<somedescription>またはFtr/ftr-<somedescription>などの形式で命名されています。私のgitフロントエンドとしてTowerを使用して、すべてのFtr/Fix/Test/などをフォルダにきちんと整理しています。ブランチの作成が終わったら、それらの名前をDone/...-<description>に変更します(そうすることで履歴を残すことができます)。そしてそれが何であるかを知ることができます(feature、fix、testなど)。

23
Yohst