0

タグ付きヘッドを固定することは可能ですか?言い換えれば、最後のコミット時にタグ付きの分離ヘッドでコミットを削除することをガベージコレクターが防止できるのでしょうか?タグ付きヘッドを固定する

私が見つけたすべての他の投稿は、別のブランチに残す前にこの状態で作成されたコミットを失うのを防ぐために、分離ヘッドにブランチを作成することについて話します。

私が理解するように、タグとブランチの主な違いは、作成されたのとまったく同じ位置にあるタグと比較して、ヘッドで動くブランチです。

私のシナリオでは、私はSHA-1をチェックアウトしてから、この時点からいくつかのコミットを行いました。退室する前に、私はブックマークを入れたいと思っています。私はセマンティックの観点から、タグは後で戻ってくる枝よりも優れていると思います。

これが私ができる唯一のことであれば、タグの代わりにこの時点でブランチを作成するのに問題はありませんが、内部的にgitのタグやブランチとの関係を考えています切り離された頭部。

また、概念的には、ブランチではなくタグを作成することについて誰かが私に同意しない場合、この場合は説明がわかります。

+1

あなたはこれまでに2つの良い答えがあります。私はコメントを追加します:それはあなたが*修正*によって意味するものに依存します。結局のところ、分離したHEADは最初は破られていません。 – torek

答えて

1

はい、タグは、ブランチと同じ方法でガベージコレクションを防止します。到達不能なコミットだけがガベージコレクションの対象となり、gitはすべてのrefをチェックして、コミットが到達可能かどうかをチェックします。

2

今後コミットするためにタグを入れるのは間違いではありません。いくつかの欠点は、しかし、がありますいくつかのオプションを持つ

  • git fetchまたはpushは、マッピングなしで、サイドをターゲットにすべてのタグをコピーします。したがって、プライベートな一時タグは共通の名前空間になる可能性があります。
  • 持つあまりにも多くのタグが全体的に私はタグがより多くの例のリリースのために、公共の恒久的なマイルストーンとして意図されていると言うでしょう

のGUIで問題が発生することがあります。

考慮すべき多くのオプションがあります:

  • コミット、しばらくの間は、収集され、REFLOG
  • を介してアクセスできていませんそれは、分岐することができ、それは
  • を変更していない場合、それは問題ではありませんそれはtagsまたはbranchesよりもさらに別の名前空間の参照になります。これは例えば中間マークのためにbisectが行うものです
  • これは専用のcollect-allブランチにマージすることができます。これは私が地元の開発で使っているものです
+0

あなたの答えは非常にはっきりしていますが、私の質問の主な部分は、コミットがガベージコレクションされないようにすることに重点を置いています。しかし、パブリックパーマネントマイルストーンのタグのみを考慮して、あなたのアドバイスに従います。この場合、私の経験則では、タグを既存のブランチに追加するだけで、ほとんどの場合、タグを削除するブランチの削除を防ぐために永続的なブランチにタグを追加することです。私はgit-flowを使い、タグはマスターブランチの99%になります。 – Samuel

関連する問題