[Git] 動作を試す 実行例45：grafted表記のブランチをfetch取得する際の挙動を見る

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

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

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

# 実行例

```
(※始めにコミット履歴状況を確認)
cd /test-space/remote-repo1.git
git log --oneline --graph --all
↓
結果: 
* fab68d8 (HEAD -> master) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

-----

(※試行用に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

-----

※grafted表記の位置へ辿ればつながるブランチをfetch取得する場合

git fetch --depth=4 origin master
↓
結果: 
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 14 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (14/14), 1.08 KiB | 2.00 KiB/s, done.
From D:/test-space/remote-repo1
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master

git log --oneline --graph --all
↓
結果: 
* fab68d8 (origin/master) message R3
* c69a305 message R1
* 94996a0 message4
* 20bbab7 (grafted) message3

※grafted表記の位置へ辿ればつながるブランチをfetch取得
git fetch origin branch-R1
↓
結果: 
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 269 bytes | 2.00 KiB/s, done.
From D:/test-space/remote-repo1
 * branch            branch-R1  -> FETCH_HEAD
 * [new branch]      branch-R1  -> origin/branch-R1

git log --oneline --graph --all
↓
結果: 
* fab68d8 (origin/master) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1) message R2
|/
* 20bbab7 (grafted) message3

(※branch-R1はgraftedまでの履歴が取得される)

-----

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

-----

(※試行用に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

-----

※grafted表記のブランチにつながらないブランチをfetch取得する場合

git fetch --depth=1 origin master
↓
結果: 
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), 359 bytes | 0 bytes/s, done.
From D:/test-space/remote-repo1
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master

git log --oneline --graph --all
↓
結果: 
* fab68d8 (grafted, origin/master) message R3

※grafted表記のブランチにつながらないブランチをfetch取得
git fetch origin branch-R1
↓
結果: 
git fetch origin branch-R1
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 13 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (13/13), 978 bytes | 1024 bytes/s, done.
From D:/test-space/remote-repo1
 * branch            branch-R1  -> FETCH_HEAD
 * [new branch]      branch-R1  -> origin/branch-R1

git log --oneline --graph --all
↓
結果: 
* fab68d8 (grafted, origin/master) message R3
* e009b2d (origin/branch-R1) message R2
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

(※branch-R1は全ての履歴が取得される)

git fetch --depth=1 origin branch-R1
↓
結果: 
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
From D:/test-space/remote-repo1
 * branch            branch-R1  -> FETCH_HEAD

git log --oneline --graph --all
↓
結果: 
* fab68d8 (grafted, origin/master) message R3
* e009b2d (grafted, origin/branch-R1) message R2

-----

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

# 環境

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