it-swarm-ja.com

フォークされたリポジトリのアップストリームブランチをクリーンアップしても安全ですか?

リポジトリをフォークすると、アップストリームリポジトリのすべてのブランチにリポジトリが付属します。自分が取り組んでいるブランチだけを本当に気にしていると、圧倒的な数のアップストリームブランチが存在することがあります。ローカルリポジトリに両方のリモートを設定できる場合、2つのリポジトリに同じブランチを配置するのは冗長なようです。

例えば:

リポジトリAにはブランチA1、...、A1000があります。このリポジトリをGitHubでフォークすると、同じブランチ(A1、...、A1000)を持つ新しいリポジトリBが取得されます。リポジトリBに、作業中のブランチ(B1とB2など)のみを含めるようにします。

フォークから上流のブランチを削除して、私と私のチームにとって物事をよりシンプルでクリーンにすることは可能ですか(つまり、フォーク内の唯一のブランチは作業中のブランチです)?少なくとも、アップストリームリポジトリからのデフォルトブランチが必要ですか?

2
Neal Kruis

フォークから上流のブランチを削除して、私と私のチームにとって物事をよりシンプルでクリーンにすることは可能ですか(つまり、フォーク内の唯一のブランチは作業中のブランチです)?

フォークから上流のブランチを削除する必要はありませんが、最も確実に可能です。フォークされたリポジトリを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ホスティングプラットフォームでそのリポジトリの設定に移動し、問題のブランチを削除する前にデフォルトのブランチを変更します。

1
Caleb Xu