Gitでは、ブランチの「削除」とはどういう意味ですか?
リポジトリから削除されますか?または、git branch
を介して引き続きナビゲートできますか?
私が本当にやりたいことは、ブランチを「行き止まり」としてマークすることです。つまり、ブランチはマスターから遠く離れているため、誰も出発点としてそれを使用するべきではありません。参考のために保管してください。
ブランチを削除できますが、最初にタグを付けて、履歴が消えないようにします。この方法では、ブランチリストにブランチが表示されないため、人々が作業するのを思いとどまらせることができますが、作業は永久に消去されません(ガベージコレクションが実行された後でも)。たとえば、無関係になったブランチがあり、それを永久に削除する準備ができていないときはいつでも、「archive/<branch-name>」としてタグ付けします。
master
または他のブランチで:
git tag archive/foo foo
git branch -D foo
foo
を削除する前に、foo
ブランチからarchive/foo
という名前のタグを作成します。タグにメッセージを追加することもできます。このメッセージは、ブランチ内の内容、なぜ存在したのか、今では行き止まりになっている理由などを説明します。
git tag -m 'Foo is deprecated in favor of bar' archive/foo foo
ブランチが非推奨になっている理由を記録する機能は、おそらくブランチを代替ネームスペースに移動するよりもタグ付けする方が有利です。
この方法でアーカイブされたブランチを復活させる必要がある場合、それは次のように簡単です:
git branch foo archive/foo
git tag -d archive/foo # Optional
これで、ブランチは削除されなかったかのように戻ります。
Gitブランチは、リビジョンへの参照として保存されます。ブランチを削除すると、参照は削除されます。そのリビジョンを参照するものが他にない場合、最終的にガベージコレクションされます。また、ブランチを削除すると、(リポジトリから)適切に削除されます。ブランチを非推奨としてマークし、後で使用するために保持したい場合は、ブランチをサブディレクトリに移動できます。
$ git branch
* master
testing_feature_one
testing_feature_two
$ git branch -m testing_feature_one deprecated/testing_feature_one
$ git branch
deprecated/testing_feature_one
* master
testing_feature_two
または、廃止されたブランチ用に個別のリポジトリを作成し、それらをプルしてから元のブランチから削除することもできます。どちらの場合でも、ブランチをフォローしているユーザーに影響を与えます-リポジトリのコンテンツは変更されません(ブランチ名も変更されません)が、再度プルしようとすると、構成内のターゲットを変更する必要があります。
git branch -D <branchName>
はリポジトリからブランチを削除します。これを表示したり、移動したりすることはできなくなります。また、そのブランチで行われたすべてのファイル変更は失われます。
Gitブランチを介して移動することはできず、ガベージコレクションが実行されるまで、リポジトリから失われることはありません。
問題のブランチを行き止まりとしてマークしたい場合は、単にそうします(gitはこれをしないかもしれませんが、確かにできます)!
歴史的な参考資料としてのラベル付け(任意の方法で).