ご注意ください:私はMercurialまたはGitの方が良いかどうかの議論を再開しようとしていません。私はMercurialユーザーとして理解できないという技術的な質問があります。私は、SOがそのような質問をする正しい場所であるかどうかも分かりませんが、はプログラミング関連のです。Gitはコミットの一環としてブランチ名を保存しないのはなぜですか?
2つのバージョンコントロールシステムGitとMercurialがユーザーの観点からどのように異なっているかについて多くの議論がありました(例えば、とhttp://felipec.wordpress.com/2011/01/16/mercurial-vs-git-its-all-in-the-branches/)、主な違いはブランチの処理です。私はこれらの議論の多くを読んだことがありますが、私はこの質問を続けます。
コミットの一部としてブランチ名を保存しないのはなぜですか?
私はそれをしていない正当な理由は本当にありません。つまり、参照(タグ、ブランチなど)がないため、データが単に消えるだけではありません。
私はコミットのブランチをMercurialの大きなプラスとして格納しています。これはデータを失うことをより困難にするためです。
Gitの分岐モデルに賛成で、単にブランチを削除できるという主な点は、Gitが各コミットの一部としてブランチの名前を格納することを妨げません:ブランチのコミットが削除された場合そのブランチへの参照もそうです。また、「安価な分岐」の議論に干渉することもありません。支店の管理にはコストがかかりません。そして、私は、必要な追加ストレージが懸念されるべきではないと思います。コミットあたりわずか数バイトです。
私は混乱しています。今はいつデータを失うのですか? – Useless
私はしませんが、それは可能です:私が理解する限り、分離した頭部はタグまたは枝を指さないとガベージコレクションされます。 –
@danielkullmann:ガベージコレクトされていますが、少なくとも2週間前ではありません:http://stackoverflow.com/questions/5772192/git-how-can-i-reconcile-detached-head-with-master-origin – VonC