ブランチをマージした後、リポジトリから削除しますか?
しかし、それは良い習慣かどうか?
現在のリリースを壊したくないので、私は通常たくさんのブランチを作成します、そして私は物事を整理するためにそれらを削除したいと思います。
ただし、AssemblaまたはGitHubを使用している場合、古いブランチからのマージリクエストはサイトに保存されるため、それらを削除すると、それらをフェッチできないため、エラーが発生します...
通常、それをどのように管理しますか?
回答:
マージされたブランチを削除しても問題はありません。すべてのコミットは履歴で引き続き利用可能であり、GitHubインターフェースでも表示されます(たとえば、私が持っているフォークを参照するこのPRを参照してください)。 PRが承認された後に削除されました)。
Merge branch fix-foo-bar
コミットメッセージの形ですでにそれを持っています。試してからgit log --grep="Merge branch"
、を介して関心のある独自のアンカーをドロップしますgit checkout -b curious-change
。また、ブランチを削除しても何も失われません-単なる「ブランチ名→commithash」ポインタを除いて(これはブランチが実際に何であるかであり、ローカルまたはリモートに関係ありません)。
ブランチがマージされた後、私は間違いなくブランチをクリーンアップします。
GitLabを使用してリクエストをマージするため、ブランチに関する履歴情報がそこに保存されます。私は彼らが私のブランチリストを乱雑にする必要はありません、そして私が同僚のフォークを見るとき、理想的には彼らの現在活発な開発のブランチだけを見たいです。ブランチ上のコードを調べようとしている場合は、現在アクティブなブランチのいくつかだけを調べて、これまでに作業を開始したすべての機能や修正を調べられるようにしたいと思います。
上記はBitBucketとGitHubにも当てはまります。
マージ後にブランチを削除しない唯一の理由は、特定の機能がどこで終了したかを知るためですが、マージコミット(およびgit merge --no-ff
本当に必要な場合)はそれを無関係にします。
削除されたブランチのすべてのハイパーリンクURL参照に注意してください。壊れます。
たとえば、リポジトリからブランチ
を削除した場合
、このブランチの対応するハイパーリンクURLは壊れますhttps://github.com/username/project/tree/branch_feature_xbranch_feature_x