導入
ブランチに移動したら、あとはいつも通り編集してコミットするだけです。すると履歴が本当に枝分かれします。ここでは feature 側にコミットを積んで、main と分岐する様子を見ます。
説明
feature に移り、ファイルを変えてコミットします。
git init
git add .
git commit -m "Initial commit"
git switch -c feature
echo "console.log('new feature');" >> app.js
git add app.js
git commit -m "Add new feature"
git log --oneline
feature の履歴には2つのコミットが見えます。ここで main に戻ると、app.js への変更が 消えている ことに驚くかもしれません。
git switch main
cat app.js
git log --oneline
変更は消えたのではなく、feature ブランチの中にちゃんと残っています。main にはまだ合流していないだけです。ブランチを移動すると、作業ツリーもそのブランチの内容に切り替わります。
flowchart LR
C1["C1"] --> C2["C2 (main)"]
C2 --> C3["C3 (feature)"]
やってみよう
上の手順で feature にコミットし、main に戻ると app.js が元に戻ること、そして feature に戻すと復活することを確認しましょう。ブランチが独立した作業場所であることが体感できます。
演習
feature の履歴を1行ずつ表示してください(2コミット見えれば成功です)。
ヒント1を見る
feature に切り替えてコミットを積んでから git log --oneline。