2016-10-13 Git基礎(六)-ラベルを打つ
4192 ワード
他のバージョンの制御システム(VCS)のように、Gitは履歴のいずれかのコミットに重要なラベルを付けることができます.代表的なのは、この機能を使用してパブリッシュノードをマークすることです.
シナリオ1:ラベルのリスト
コマンド: をリストする.
シナリオ2:ラベルの作成
Gitは、軽量ラベルと注釈ラベルの2つの主要なタイプのラベルを使用します.
軽量ラベルは、変更されないブランチに似ています.特定のコミットの参照にすぎません.
ただし、注記ラベルはGitデータベースに格納されている完全なオブジェクトです.検証できますラベルを打つ人の名前、電子メールアドレス、日付時間が含まれています.もう一つのラベル情報があります.GNU Privacy Guard(GPG)署名と検証を使用することができる.通常、上記のすべての情報を持つことができるように、注釈ラベルを作成することをお勧めします.しかし、一時的なラベルを使いたいだけか、何らかの理由で情報を保存したくない場合は、軽量のラベルも使用できます.
注釈ラベルの作成
ラベル情報と対応するコミット情報の表示
軽量ラベルの作成
軽量ラベルの表示
シナリオ3:後にラベルを付ける
過去の提出にラベルを付けることができます.
シナリオ4:共有ラベル
デフォルトでは、
複数のラベルを一括してプッシュする場合は、
ケース5:チェックアウトラベル
Gitでは本当にラベルをチェックアウトすることはできません.ブランチのように移動することはできません.作業ディレクトリが倉庫内の特定のラベルバージョンと完全に同じである場合は、
シナリオ1:ラベルのリスト
コマンド:
git tag
はtag git tag -l "v0.0.*"
探索v 0.0シリーズのtag ➜ git_test git:(master) git tag -a v0.1.0 -m " "
➜ git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
➜ git_test git:(master) git tag -l "v0.0.*"
v0.0.1-rc0
シナリオ2:ラベルの作成
Gitは、軽量ラベルと注釈ラベルの2つの主要なタイプのラベルを使用します.
軽量ラベルは、変更されないブランチに似ています.特定のコミットの参照にすぎません.
ただし、注記ラベルはGitデータベースに格納されている完全なオブジェクトです.検証できますラベルを打つ人の名前、電子メールアドレス、日付時間が含まれています.もう一つのラベル情報があります.GNU Privacy Guard(GPG)署名と検証を使用することができる.通常、上記のすべての情報を持つことができるように、注釈ラベルを作成することをお勧めします.しかし、一時的なラベルを使いたいだけか、何らかの理由で情報を保存したくない場合は、軽量のラベルも使用できます.
注釈ラベルの作成
➜ git_test git:(master) git tag -a v0.1.1 -m " "
➜ git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
v0.1.1
ラベル情報と対応するコミット情報の表示
➜ git_test git:(master) git show v0.1.1
tag v0.1.1
Tagger: augustine
Date: Thu Oct 13 16:19:09 2016 +0800
commit b6199c8df83ccb70a940d90c9621bcc43d025f1e
Author: augustine
Date: Wed Oct 12 14:59:30 2016 +0800
test
diff --git a/2 b/2
index e69de29..14be0d4 100644
--- a/2
+++ b/2
軽量ラベルの作成
➜ git_test git:(master) git tag v1.0.1
➜ git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
v0.1.1
v1.0.1
軽量ラベルの表示
commit b6199c8df83ccb70a940d90c9621bcc43d025f1e
Author: augustine
Date: Wed Oct 12 14:59:30 2016 +0800
test
diff --git a/2 b/2
index e69de29..14be0d4 100644
--- a/2
+++ b/2
シナリオ3:後にラベルを付ける
過去の提出にラベルを付けることができます.
➜ git_test git:(master) git log --pretty=oneline
b6199c8df83ccb70a940d90c9621bcc43d025f1e test
7dc31d13d7d48a7e1cd93f31668bd50beb679889 ament
e87932d0c46461dcf77fd75feef2a3c7b28e4fe4 renamed
10ff61af1a6aea266a423222decc0dfc4be67ad8 rename
d446522b785cc96b6161b91f35f0362eaffde7d4 rename
782be0944b2e3b086fc13604dfece14b7512773f test
4021312cdb038da674f6a85a5a3b358f012209dc save last commit
➜ git_test git:(master) git tag -a v0.0.1-rc00 e87932d0c46461dcf77fd75feef2a3c7b28e4fe4
1
2 # Write a message for tag:
3 # v0.0.1-rc00
4 # Lines starting with '#' will be ignored.
➜ git_test git:(master) git tag
v0.0.1-rc0
v0.0.1-rc00
v0.1.0
v0.1.1
v1.0.1
シナリオ4:共有ラベル
デフォルトでは、
git push
コマンドはリモート・ウェアハウス・サーバにラベルを転送しません.ラベルを作成したら、共有サーバにラベルを明示的にプッシュする必要があります.このプロセスは、リモートブランチを共有するのと同じです.git push origin [tagname]
を実行できます.複数のラベルを一括してプッシュする場合は、
--tags
オプション付きgit push
コマンドを使用することもできます.これにより、リモート・ウェアハウス・サーバにないすべてのラベルが転送されます.➜ git_test git:(master) git push origin v0.0.1-rc0
Username for 'https://github.com': [email protected]
Password for 'https://[email protected]@github.com':
Counting objects: 1, done.
Writing objects: 100% (1/1), 158 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To https://github.com/xuguotao/git_test.git
* [new tag] v0.0.1-rc0 -> v0.0.1-rc0
➜ git_test git:(master) git push --tag
Username for 'https://github.com': [email protected]
Password for 'https://[email protected]@github.com':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 375 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/xuguotao/git_test.git
* [new tag] v0.0.1-rc00 -> v0.0.1-rc00
* [new tag] v0.1.0 -> v0.1.0
* [new tag] v0.1.1 -> v0.1.1
* [new tag] v1.0.1 -> v1.0.1
ケース5:チェックアウトラベル
Gitでは本当にラベルをチェックアウトすることはできません.ブランチのように移動することはできません.作業ディレクトリが倉庫内の特定のラベルバージョンと完全に同じである場合は、
git checkout -b [branchname] [tagname]
を使用して特定のラベルに新しいブランチを作成できます.➜ git_test git:(master) git checkout -b v0.1.1
Switched to a new branch 'v0.1.1'
➜ git_test git:(v0.1.1) gst
On branch v0.1.1
nothing to commit, working directory clean