回答:
タグは主に、コミットにタグを付けることにより、プロジェクトの特定のバージョンを将来参照するために使用されます。もちろん、ブランチはいつでも使用できますが、バージョンを頻繁に変更すると、未使用またはほとんど使用されないブランチがたくさん作成されます。
実際には、タグはとにかく分岐のない分岐であり、プロジェクトの特定のバージョンを参照する方法を追加するだけで複雑さを軽減します。
編集:ここに私はすべての私のプロジェクトのために使用することを利用gitのに良い方法があります。
私は、タグとブランチの。タグは、リリースされたコードまたは注目すべき開発ビルドをマークするのに適しています。ブランチは、特定のバージョンに関連するすべての変更を追跡するのに適しています。
このタイプのワークフローに関する優れた記事を次に示します。http://nvie.com/posts/a-successful-git-branching-model/
ブランチとタグは同じです(コミットへのポインター、別名"ref")。ただし、ブランチは自動的に次のコミットに移動し、タグは同じコミットで永久に1のままです。
リリースを作成するときは、通常、そのリリースのビルド元のコードの「スナップショット」にマークを付け、コードを進化させ続けてもそのようにマークされたままにするため、タグを使用します。
そのためにブランチを使用しようとすると、誤って、リリースがビルドされていない別のコミットに移動する可能性があります。
1もちろん、タグを削除しない限り。
注:これは古い質問であることに気づきましたが、ブランチとタグの類似性(および1つの重要な違い)が他の回答では明確に具体化されていないと感じました。
git commit
すると、チェックアウトされたブランチのヘッドが更新されて新しいコミットを参照しますが、他のブランチは「自動的に」次のコミットに移動しません。答えの最初の段落を明確にすべきです。
.git\refs\heads
、コミットのハッシュが含まれています。コミット自体は、それらを作成したブランチを「記憶」しません。これは、たとえばMercurialとは異なり、ブランチ情報をコミットのメタデータに書き込むことができます。
タグを使用して、履歴内の重要なコミットを記録します。「これは、ビルドサーバーが故障した雨の木曜日にこのバージョンに使用した正確なコミットでした。」タグの代わりにブランチを使用する場合、使用した正確なコミットを知ることはできません。コミットの正確なハッシュを手動で書き留めない限り、「このブランチのどこかにバージョン1.1.0をリリースした」ことだけがわかります。そのため、最初にタグを使用します:)
他の答えに加えて、これは私の2セントです。
短い回答:リリースバージョンのタグを使用する
長い答え:リリースのバージョン管理にタグを使用することは、ブランチを使用するよりも特に優れていると思います。リリースを更新する必要がある場合は、タグ付けされたコミットから分岐し、その分岐(おそらく修正プログラムの分岐)での作業が終了したら、新しいバージョンの新しい分岐の先頭に新しいタグを作成します。次に、ブランチをmaster / developにマージします。これは、ソースコードにマージする必要がある可能性のある修正プログラムでない限り、リリースバージョンを変更するべきではないためです。次に、不要になったブランチを削除します。その新しいバージョンに別の修正プログラムを適用する必要がある場合は、同じ手順を繰り返します。
修正プログラムを作成者のGitワークフローとマージする方法を示す次の記事のセクションを参照してください-https ://hackernoon.com/a-branching-and-releasing-strategy-that-fits-github-flow-be1b6c48eca2