リモートgitタグをチェックアウトするときは、次のようなコマンドを使用します。
git checkout -b local_branch_name Origin/remote_tag_name
私はこのようなエラーを得ました:
error: pathspec `Origin/remote_tag_name` did not match any file(s) known to git.
Git tagコマンドを使用するとremote_tag_nameが見つかります。
タグは、履歴内の特定の commit をラベル付けしてマークするために使用されます。
通常、リリースポイントをマークするために使用されます(例:v1.0など)。タグはbranchと似ているように見えますが、 タグは を変更しません。
履歴の中で 直接 を 特定のcommit に指定します。
タグが自分のリポジトリにローカルに存在しない場合、タグをチェックアウトすることはできません。最初に、タグをローカルリポジトリにfetch
する必要があります。
まず、 を実行して、タグがローカルに存在することを確認します。
# --all will fetch all the remotes.
# --tags will fetch all tags as well
git fetch --all --tags --Prune
それから を実行してタグをチェックアウトします。
git checkout tags/<tag_name> -b <branch_name>
Origin
の代わりにtags/
プレフィックスを使用してください。
このサンプルには、バージョン1.0とバージョン1.1の2つのタグがあり、以下のいずれかでそれらをチェックアウトできます。
git checkout A ...
git checkout version 1.0 ...
git checkout tags/version 1.0 ...
Tagは与えられたコミットへのポインタにすぎないので、上記のすべては同じことをします。
出所: https://backlog.com/git-tutorial/img/post/stepup/capture_stepup4_1_1.png
# list all tags
git tag
# list all tags with given pattern ex: v-
git tag --list 'v-*'
タグを作成する方法は2つあります。
# normal tag
git tag
# annotated tag
git tag -a
2との違いは、注釈付きタグを作成するときに、git commitのようにメタデータを追加できるということです。
名前、Eメール、日付、コメント、署名
# delete any given tag
git tag -d <tag name>
# Don't forget to remove the deleted tag form the server with Push tags
与えられたタグの内容をつかむためにcheckout
コマンドを使うことができます。
上で説明したように、タグは他のコミットと似ているのでcheckout
を使うことができ、SHA-1を使う代わりにtag_nameに置き換えるだけです。
オプション1:
# Update the local git repo with the latest tags from all remotes
git fetch --all
# checkout the specific tag
git checkout tags/<tag> -b <branch>
オプション2:
Cloneコマンドに--branch
を追加することでgitはshallow cloneをサポートするので、ブランチ名の代わりにタグ名を使用できます。 Gitは与えられたSHA-1をどのようにして関連するコミットに変換するかを知っています
# Clone a specific tag name
git clone <url. --branch=<tag_name>
git clone --branch =
--branch
はタグを取り、そのコミットでHEADを結果のリポジトリにデタッチすることもできます。
特定のタグコードを取得するには、新しいブランチを追加して、タグコードを取得してください。私はコマンドでそれをやった:$git checkout -b newBranchName tagName