LoginSignup
0
0

[Git] 動作を試す 実行例48:リモートとローカルで別名のブランチを指定してfetch/push

Posted at

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

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

※前回記事のリポジトリ状態からの続きになっています。

前回記事へ 目次へ:Git関連記事のまとめページ 次回記事へ

実行例

(※試行用に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 fetch origin master:master-A1
↓
結果: 
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 21 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (21/21), 1.53 KiB | 1024 bytes/s, done.
From D:/test-space/remote-repo1
 * [new branch]      master     -> master-A1
 * [new branch]      master     -> origin/master

git log --oneline --graph --all
↓
結果: 
* fab68d8 (origin/master, master-A1) message R3
* c69a305 message R1
* 94996a0 message4
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

(※リモートとローカルで別名のブランチが作成されている: origin/master, master-A1)

git checkout master
↓
結果: 
Already on 'master'
branch 'master' set up to track 'origin/master'.

git log --oneline --graph --all
↓
結果: 
* fab68d8 (HEAD -> master, origin/master, master-A1) message R3
* c69a305 message R1
* 94996a0 message4
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

(※masterをチェックアウトすると、ローカルブランチのmasterが再度新規に作成される)

-----

(※masterブランチに居ながら、別のブランチに対して、リモートとローカルで別名のブランチを指定してfetch取得更新)

git fetch origin branch-R1:branch-R111
↓
結果: 
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 270 bytes | 2.00 KiB/s, done.
From D:/test-space/remote-repo1
 * [new branch]      branch-R1  -> branch-R111
 * [new branch]      branch-R1  -> origin/branch-R1

git log --oneline --graph --all
↓
結果: 
* fab68d8 (HEAD -> master, origin/master, master-A1) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1, branch-R111) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

-----

(※適当に変更を追加)
git checkout master-A1
echo Sample-Added-R4 >> test1.txt
git commit -a -m "message R4"

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

※リモートとローカルで別名のブランチを指定してリモートリポジトリへpush送信する
※git push [リモートリポジトリ名] [ローカルブランチ]:[リモートブランチ]
git push origin master-A1:master
↓
結果: 
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 331 bytes | 331.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
To D:/test-space/remote-repo1.git
   fab68d8..1247fa9  master-A1 -> master

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

(※master-A1ブランチを指定してリモートリポジトリのmasterが更新されている)

-----

(※新規にbranch-R2ブランチを作成して、別のmaster-A1ブランチに居ながら、branch-R2を別名のブランチでリモートリポジトリへpush送信する)

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

git push origin branch-R2:branch-R222
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To D:/test-space/remote-repo1.git
 * [new branch]      branch-R2 -> branch-R222

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

(※別のmaster-A1ブランチに居ながら、branch-R2が別名のブランチ名でリモートリポジトリへpush送信されている)

(※位置を進める)
git branch -f branch-R2 e009b2d
git log --oneline --graph --all
↓
結果: 
* 1247fa9 (HEAD -> master-A1, origin/master) message R4
* fab68d8 (master) message R3
* c69a305 message R1
* 94996a0 message4
| * e009b2d (origin/branch-R1, branch-R2, branch-R111) message R2
|/
* 20bbab7 message3
* 00cad71 (origin/branch-R222) message2
* 4ace194 message1

git push origin branch-R2:branch-R222
↓
結果: 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To D:/test-space/remote-repo1.git
   00cad71..e009b2d  branch-R2 -> branch-R222

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

(※別のmaster-A1ブランチに居ながら、branch-R2が別名のブランチ名でリモートリポジトリへpush送信されている)

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-R222, branch-R1) message R2
|/
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

-----

(※pushしたブランチを削除して元に戻す)
cd /test-space/local-repo3
git push --delete origin branch-R222

-----

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

環境

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0