[Git] 動作を試す 実行例53：pushでタグ情報をリモートリポジトリに送信

Gitの動作を理解するために、Gitのコマンドを実際に試して、結果を見てみました。

1つの記事内で一連のGitコマンドが完結しているので、これら一連のコマンドを順に実行させて結果を見ることで、一連のGitの動作を実際に体感でき、一通り独習することが可能です。

※前回記事のリポジトリ状態からの続きになっています。
| [前回記事へ](https://qiita.com/dl_from_scratch/items/ec2c4eeed01c4666cecb) | [目次へ：Git関連記事のまとめページ](https://qiita.com/dl_from_scratch/items/597bc28a4787a7901d21) | [次回記事へ](https://qiita.com/dl_from_scratch/items/c232b02e9970a477525a) |
|:-:|:-:|:-:|

# 実行例

※Pro Git本 引用: デフォルトでは、git pushコマンドはタグ情報をリモートに送りません。

※特定のタグ情報をリモート側に送信して反映
git push origin v1.5

※ローカル側にあるタグのうちまだリモート側に存在しないものを全て送信して反映
git push origin --tags

```
(※試行用にlocal-repo3を作成)

cd /test-space
mkdir local-repo3
cd /test-space/local-repo3

git init
git remote add origin "D:/test-space/remote-repo1.git"

git log
↓
結果: 
fatal: your current branch 'master' does not have any commits yet

-----

(※リモートリポジトリからブランチを取得して環境準備)
git fetch
git log --oneline --graph --all
↓
結果: 
* 1247fa9 (origin/master) message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

(※タグを作成)
git tag T2 00cad71
git tag T4 94996a0
git tag T-R2 e009b2d
git log --oneline --graph --all
↓
結果: 
* 1247fa9 (origin/master) message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 message R1
* 94996a0 (tag: T4) message4
| * e009b2d (tag: T-R2, origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 (tag: T2) message2
* 4ace194 message1

-----

※特定のタグ情報をリモートリポジトリに送信して反映
git push origin T2
↓
結果: 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To D:/test-space/remote-repo1.git
 * [new tag]         T2 -> T2

git log --oneline --graph --all
↓
結果: 
* 1247fa9 (origin/master) message R4
* fab68d8 (origin/branch-R2) message R3
* c69a305 message R1
* 94996a0 (tag: T4) message4
| * e009b2d (tag: T-R2, origin/branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 (tag: T2) message2
* 4ace194 message1

(※送信されたかどうか、git logではよく分からない)

-----

cd /test-space/remote-repo1.git
git log --oneline --graph --all
↓
結果: 
* 1247fa9 (HEAD -> master) message R4
* fab68d8 (branch-R2) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 (tag: T2) message2
* 4ace194 message1

(※リモートリポジトリにタグが作成されている)

cd /test-space/local-repo3

-----

※ローカル側にあるタグのうちまだリモート側に存在しないものを全て送信して反映
git push origin --tags
↓
結果: 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To D:/test-space/remote-repo1.git
 * [new tag]         T-R2 -> T-R2
 * [new tag]         T4 -> T4

-----

cd /test-space/remote-repo1.git
git log --oneline --graph --all
↓
結果: 
* 1247fa9 (HEAD -> master) message R4
* fab68d8 (branch-R2) message R3
* c69a305 message R1
* 94996a0 (tag: T4) message4
| * e009b2d (tag: T-R2, branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 (tag: T2) message2
* 4ace194 message1

(※リモートリポジトリにタグが作成されている)

cd /test-space/local-repo3

-----

(※タグを削除してリモートリポジトリの内容を始めに戻す)

git ls-remote --tags
↓
結果: 
From D:/test-space/remote-repo1.git
e009b2d7b8ca82fd2e2bdc1172408673d63fd8d7        refs/tags/T-R2
00cad7159948154b9a0e2011d052584bedd643c9        refs/tags/T2
94996a08c7d417aa01f78359887c7c59b8f3e309        refs/tags/T4

git push origin --delete T2
↓
結果: 
To D:/test-space/remote-repo1.git
 - [deleted]         T2

git push origin --delete T4
git push origin --delete T-R2

git ls-remote --tags
↓
結果: 
From D:/test-space/remote-repo1.git

-----

(※local-repo3を削除)
cd /test-space
rd /s /q "/test-space/local-repo3"
```

# 環境

Windows 10、PortableGit-2.40.0-64-bitを使用、全てローカルPC上で実施、GitHub等は不使用。