ブランチをマージした後、リポジトリから削除しますか?
しかし、それは良い習慣かどうか?
現在のリリースを壊したくないので、私は通常たくさんのブランチを作成します、そして私は物事を整理するためにそれらを削除したいと思います。
ただし、AssemblaまたはGitHubを使用している場合、古いブランチからのマージリクエストはサイトに保存されるため、それらを削除すると、それらをフェッチできないため、エラーが発生します...
通常、それをどのように管理しますか?
ブランチをマージした後、リポジトリから削除しますか?
しかし、それは良い習慣かどうか?
現在のリリースを壊したくないので、私は通常たくさんのブランチを作成します、そして私は物事を整理するためにそれらを削除したいと思います。
ただし、AssemblaまたはGitHubを使用している場合、古いブランチからのマージリクエストはサイトに保存されるため、それらを削除すると、それらをフェッチできないため、エラーが発生します...
通常、それをどのように管理しますか?
マージされたブランチを削除しても問題はありません。すべてのコミットは履歴で引き続き利用可能であり、GitHubインターフェースでも表示されます(たとえば、私が持っているフォークを参照するこのPRを参照してください)。 PRが承認された後に削除されました)。
ブランチがマージされた後、私は間違いなくブランチをクリーンアップします。
GitLabを使用してリクエストをマージするため、ブランチに関する履歴情報がそこに保存されます。私は彼らが私のブランチリストを乱雑にする必要はありません、そして私が同僚のフォークを見るとき、理想的には彼らの現在活発な開発のブランチだけを見たいです。彼らのブランチでいくつかのコードを見ようとしているのなら、現在アクティブなブランチのいくつかだけを調べられるようにしたいのですが、それらがこれまでに取り組んだすべての機能や修正ではありません。
上記はBitBucketとGitHubにも当てはまります。
マージ後にブランチを削除しない唯一の理由は、特定の機能がどこで終了したかを知っているためですが、マージコミット(およびgit merge --no-ff
本当に必要な場合)はそれを無関係にします。
削除されたブランチのすべてのハイパーリンクURL参照に注意してください。壊れます。
たとえば、リポジトリからブランチ
を削除した場合
、このブランチの対応するハイパーリンクURLは壊れますhttps://github.com/username/project/tree/branch_feature_xbranch_feature_x
明確にするために、gitの観点からは、ブランチはコミットへのリンクにすぎません。ブランチを削除しても、gitリポジトリからコミットは削除されません。もちろん、デタッチされたコミットは、しばらくするとgitガベージコレクターを介してクリーンアップされます。
参考:通常、ビットバケットインターフェイスを介してブランチをマスターにマージしています。delete feature branch after merge
そこでフラグを設定できます。
古すぎるブランチを処理する必要がある場合は、いくつかのユーティリティ、たとえばこのユーティリティを探すことができます。