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)
※ブランチ・コミットの中を自由に移動した後で、この表示が同じであれば(全ブランチのコミット位置が同じもの)、同じ状態に戻ったことが確認できる
-----
※現在のブランチ上の、どのコミット位置にいるか、を表示する
git log --oneline -1
↓
結果:
2b19eaa (HEAD -> branch1) Merge branch 'master' into branch1
-----
※任意の位置に移るには、以下の2つのコマンドで移動(まず移したいブランチに移り、次にコミットへ移す)
git checkout <branch名>
git reset --hard <コミットのSHA値>
※移動例
git checkout master
git reset --hard 2495cae
git log --oneline -1
↓
結果:
2495cae (HEAD -> master) message7
※移動例
git checkout branch2
git reset --hard 045a734
git log --oneline -1
↓
結果:
045a734 (HEAD -> branch2) message11
git branch -v
↓
結果:
branch1 2b19eaa Merge branch 'master' into branch1
* branch2 045a734 message11
master 2495cae message7
(※元に戻す)
git checkout master
git reset --hard a4d1247
git checkout branch2
git reset --hard f3ef64d
git checkout branch1
git branch -v
↓
結果:
* branch1 2b19eaa Merge branch 'master' into branch1
branch2 f3ef64d message12
master a4d1247 message13 (fixed test10.txt)
-----
※移動用の新規ブランチを作成して、コミットの中を自由に移動後、一時的な移動用ブランチを削除
git checkout -b <branch_temp名>
git reset --hard <コミットのSHA値>
git branch -D <branch_temp名>
※移動例
git checkout -b branch_temp
git reset --hard 2495cae
git branch -v
↓
結果:
branch1 2b19eaa Merge branch 'master' into branch1
branch2 f3ef64d message12
* branch_temp 2495cae message7
master a4d1247 message13 (fixed test10.txt)
type test1.txt
↓
結果:
Sample-Added-11
Sample-Added-12
Sample-Added-13
Sample-Added-14
Sample-Added-17
dir /b
↓
結果:
test1.txt
test2.txt
test4.txt
(※別ブランチに移ってから、一時的な移動用ブランチを削除)
git checkout branch1
git branch -D branch_temp
(※移動前の状態に戻ったことを確認)
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等は不使用。