LoginSignup
0
0

[Git] 動作を試す 実行例36:branchコマンドでチェックアウトせずにブランチを自由に移動させる

Posted at

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

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

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

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

実行例

(※現在のブランチ状況を確認)
git branch -v
↓
結果: 
* branch1 2b19eaa Merge branch 'master' into branch1
  branch2 f3ef64d message12
  master  a4d1247 message13 (fixed test10.txt)

※現在のブランチ構造の模式図(+Mはマージ、10C,12Cはチェリーピック)
message1-2-3-4-10-11-12-+M-13 ←master
             |       ↓ ↑ ↓
             +-7-----+M-↑-+M ←branch1
             |          ↑
             +-8-9-10C--12C ←branch2

-----

(※チェックアウトせずに(内容物のファイルを作業フォルダ内に毎回生成させずに)、ブランチを自由に移動させる(自由に任意のコミット位置へ付け替える))

※branch1をチェックアウトの状態で、masterブランチをbranch2の所へ移動させる
git branch -f master branch2

git branch -v
↓
結果: 
* branch1 2b19eaa Merge branch 'master' into branch1
  branch2 f3ef64d message12
  master  f3ef64d message12

※branch1をチェックアウトの状態で、masterブランチをmessage1の所へ移動させる
git branch -f master 4ace194

git branch -v
↓
結果: 
* branch1 2b19eaa Merge branch 'master' into branch1
  branch2 f3ef64d message12
  master  4ace194 message1

git branch -f branch2 00cad71

git branch -v
↓
結果: 
* branch1 2b19eaa Merge branch 'master' into branch1
  branch2 00cad71 message2
  master  4ace194 message1

-----

(※branch1をチェックアウトの状態では、branchコマンドでbranch1を移動できない)

git branch -f branch1 20bbab7
↓
結果: 
fatal: cannot force update the branch 'branch1' checked out at 'D:/test-space/local-repo1'

※代わりに、resetコマンドで移動させる
git reset --hard 20bbab7
↓
結果: 
HEAD is now at 20bbab7 message3

git branch -v
↓
結果: 
* branch1 20bbab7 message3
  branch2 00cad71 message2
  master  4ace194 message1

git log --oneline --graph --all
↓
結果: 
* 20bbab7 (HEAD -> branch1) message3
* 00cad71 (branch2) message2
* 4ace194 (master) message1

-----

(※ブランチ位置をそれぞれ元に戻す)

git branch -f master a4d1247
git reset --hard 2b19eaa
git branch -f branch2 f3ef64d

git branch -v
↓
結果: 
* branch1 2b19eaa Merge branch 'master' into branch1
  branch2 f3ef64d message12
  master  a4d1247 message13 (fixed test10.txt)

git log --oneline --graph --all
↓
結果: 
*   2b19eaa (HEAD -> branch1) Merge branch 'master' into branch1
|\
| * a4d1247 (master) message13 (fixed test10.txt)
| *   4791df6 Merge branch 'branch2'
| |\
| | * f3ef64d (branch2) message12
| | * 7fdeb04 message10
| | * b838160 message9
| | * c68ef01 message8
* | | 135f847 Merge branch 'master' into branch1
|\| |
| * | 60b0341 message12
| * | 045a734 message11
| * | d10f934 message10
| |/
* / 2495cae message7
|/
* 94996a0 message4
* 20bbab7 message3
* 00cad71 message2
* 4ace194 message1

環境

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