Gitタグの説明:Gitでタグを一覧表示、作成、削除、表示する方法

タグ付けにより、開発者はプロジェクトの開発中に重要なチェックポイントをマークできます。たとえば、ソフトウェアリリースバージョンにタグを付けることができます。(例:v1.3.2)基本的に、コミットに特別な名前(タグ)を付けることができます。

作成されたすべてのタグをアルファベット順に表示するには:

git tag

タグの詳細を取得するには:

git show v1.4

タグには次の2つのタイプがあります。

注釈付き

git tag -a v1.2 -m "my version 1.4"

軽量

git tag v1.2

保存方法が異なります。

これらは、現在のコミットでタグを作成します。

前のコミットにタグを付けたい場合は、タグを付けたいコミットIDを指定します。

git tag -a v1.2 9fceb02

コミットをチェックアウトしてリモートリポジトリにプッシュするときに、コミットIDの代わりにタグ名を使用できます。

詳しくは:

  • Gitドキュメント:ドキュメント
  • Gitタグ付けの章:本

git tag次のコマンドを使用して、プロジェクトで使用可能なすべてのタグを一覧表示できます(アルファベット順に表示されます)。

$ git tag v1.0 v2.0 v3.0

タグを一覧表示するこの方法は、小規模なプロジェクトには最適ですが、大規模なプロジェクトには数百のタグが含まれる可能性があるため、履歴の重要なポイントを検索するときにタグをフィルタリングする必要があります。あなたは追加の特定の文字を含むタグ見つけることができます-lgit tagコマンドを:

$ git tag -l "v2.0*" v2.0.1 v2.0.2 v2.0.3 v2.0.4

タグを作成する

注釈付きと軽量の2種類のタグを作成できます。最初のものはGITデータベースの競合オブジェクトです。チェックサムされ、メッセージ(コミットなど)を要求し、名前、電子メール、日付などの他の重要なデータを保存します。一方、軽量タグはメッセージを必要とせず、他のデータを格納せず、プロジェクト内の特定のポイントへのポインタとして機能します。

注釈付きタグを作成する

注釈付きタグを作成する-a tagname -m "tag message"には、git tagコマンドに次を追加します。

$ git tag -a v4.0 -m "release version 4.0" $ git tag v1.0 v2.0 v3.0 v4.0

ご覧のとおり、は-a注釈付きタグを作成していることを指定し、その後にタグ名、最後に-mGitデータベースに保存するタグメッセージが続きます。

軽量タグを作成する

軽量タグには、コミットチェックサムのみが含まれます(他の情報は保存されません)。作成するには、git tag他のオプションを指定せずにコマンドを実行します(名前の末尾の-lw文字は軽量タグを示すために使用されますが、必要に応じてマークを付けることができます)。

$ git tag v4.1-lw $ git tag v1.0 v2.0 v3.0 v4.0 v4.1-lw

今回はメッセージやその他の関連データを指定しなかったため、タグには参照されたコミットのチェックサムのみが含まれます。

タグのデータを表示する

git showコマンドを実行して、タグに保存されているデータを表示できます。注釈付きタグの場合、タグデータとコミットデータが表示されます。

$ git show v4.0 tag v4.0 Tagger: John Cash  Date: Mon Sat 28 15:00:25 2017 -0700 release version 4.0 commit da43a5fss745av88d47839247990022a98419093 Author: John Cash  Date: Fri Feb 20 20:30:05 2015 -0700 finished details

監視しているタグが軽量タグの場合、参照されたコミットデータのみが表示されます。

$ git show v1.4-lw commit da43a5f7389adcb9201ab0a289c389ed022a910b Author: John Cash  Date: Fri Feb 20 20:30:05 2015 -0700 finished details

古いコミットのタグ付け

git tag commitを使用して、過去のコミットにタグを付けることもできます。これを行うには、コマンドの行でコミットのチェックサム(または少なくともその一部)を指定する必要があります。

まず、git logを実行して、必要なコミットのチェックサムを見つけます。

$ git log --pretty=oneline ac2998acf289102dba00823821bee04276aad9ca added products section d09034bdea0097726fd8383c0393faa0072829a7 refactorization a029ac120245ab012bed1ca771349eb9cca01c0b modified styles da43a5f7389adcb9201ab0a289c389ed022a910b finished details 0adb03ca013901c1e02174924486a08cea9293a2 small fix in search textarea styles

必要なチェックサムがある場合は、タグ作成行の最後に追加します。

$ git tag -a v3.5 a029ac

タグが正しく追加されたことがわかりますgit tag

$ git tag v1.0 v2.0 v3.0 v3.5 v4.0 v4.1-lw

プッシュタグ

git pushコマンドを実行すると、Gitはデフォルトでタグをプッシュしません。したがって、タグをサーバーに正常にプッシュするには、git push origin次のコマンドを実行する必要があります。

$ git push origin v4.0 Counting objects: 14, done. Delta compression using up to 8 threads. Compressing objects: 100% (16/16), done. Writing objects: 100% (18/18), 3.15 KiB | 0 bytes/s, done. Total 18 (delta 4), reused 0 (delta 0) To [email protected]:jcash/gitmanual.git * [new tag] v4.0 -> v4.0

You can also use the --tags option to add multiple tags at once with the git push origin command:

$ git push origin --tags Counting objects: 1, done. Writing objects: 100% (1/1), 160 bytes | 0 bytes/s, done. Total 1 (delta 0), reused 0 (delta 0) To [email protected]:jcash/gitmanual.git * [new tag] v4.0 -> v4.0 * [new tag] v4.1-lw -> v4.1-lw

Checking out Tags

You can use git checkout to checkout to a tag like you would normally do. But you need to keep in mind that this would result a detached HEAD state.

$ git checkout v0.0.3 Note: checking out 'v0.0.3'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.

Deleting a Tag

You may find a situation were you want to delete a certain tag. There’s a very useful command for this situations:

$ git tag --delete v0.0.2 $ git tag v0.0.1 v0.0.3 v0.0.4

More Information

  • Git Pro - Tagging Basics
  • Git Pro - Documentation
  • Git HowTo
  • Git tip: Tags
  • Creating a tag

Sources

Git documentation: tags