リポジトリをフォークすると、上流リポジトリのすべてのブランチがそれとともにフォークされます。作業中のブランチだけを本当に気にしているのに、上流ブランチの数が多すぎることがあります。ローカル リポジトリに両方のリモートを設定できる場合、2 つのリポジトリに同じブランチがあるのは冗長に思えます。
例えば:
リポジトリ A にはブランチ A1、...、A1000 があります。このリポジトリを GitHub でフォークすると、同じブランチ (A1、...、A1000) を持つ新しいリポジトリ B が作成されます。リポジトリ B には、作業中のブランチ (例: B1 と B2) のみが含まれるようにしたいと思います。
私と私のチームにとって物事をよりシンプルかつクリーンにするために、フォークからアップストリーム ブランチを削除することは可能でしょうか (また、推奨されますか)? (つまり、私たちのフォーク内のブランチは、私たちが作業しているブランチのみになります)? 少なくとも、アップストリーム リポジトリからのデフォルト ブランチは必要ですか?
答え1
私と私のチームにとって物事をよりシンプルかつクリーンにするために、フォークからアップストリーム ブランチを削除することは可能ですか (また、削除することをお勧めしますか)? (つまり、フォーク内のブランチは、私たちが作業しているブランチのみになります)
フォークから上流ブランチを削除することは確かに可能ですが、必ずしも必要ではありません。 フォークされたリポジトリを使用すると、デフォルトのブランチのみが複製されます (ブランチ名を指定した場合は、そのブランチが複製されます)。必要な特定のブランチを選択しないgit clone
限り、他のブランチの履歴はローカルに存在すらしません。git fetch
git fetch --all
言い換えれば、これらの上流ブランチを削除しても、ワークフローに大きな改善は見られません。私が考えられる唯一の利点は、精査するブランチの数が少ないほど、興味のあるブランチを見つけやすくなる可能性があるということです。
いずれにしても、リモート上のブランチを削除するコマンドは です (ローカルに対応するブランチが存在する場合は削除されません) git push origin :branchToBeDeleted
。
ローカル ブランチ (リモート フォークではなく、ローカル リポジトリ上のみ) を削除するには、 を使用しますgit branch -d branchToBeDeleted
。
ローカルブランチとリモートブランチの削除に関する詳細はこちら。
少なくともアップストリームリポジトリからのデフォルトブランチはまだ必要ですか?
簡単に言えば、デフォルトのブランチを保持することをお勧めします。git
上記の構文では、デフォルトのリモートブランチを削除できないと思います(誰かがここで試したように):
remote: error: refusing to delete the current branch: refs/heads/master
To [email protected]:<user>/<repo>.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:<user>/<repo>.git'
デフォルトのブランチを保持したくない場合は、問題のブランチを削除する前に、GitHub または使用している Git ホスティング プラットフォームでそのリポジトリの設定に移動し、デフォルトのブランチを変更してください。