ブランチとは何か
Git のブランチは、作業の流れを分けて、別々に進めるためのしくみです。ブランチで変更しても、もとの流れは変わりません。
食堂のメニューを考えます。お茶を足すかどうかを試している間も、今のメニューは使い続けたいはずです。ブランチなら、試しながら、本番を守れます。
このレッスンのゴール
メモ
ブランチで作業し、ブランチを切り替えることができる。
大事な言葉
| ことば | いみ | れい |
|---|---|---|
| ブランチ | 名前の付いた、コミットの流れ(branch) | git branch |
| HEAD | 今いるブランチの先頭を指すしるし | |
| 切り替え | 作業するブランチを変えること(switch) | git switch main |
| main | 本番の流れに付ける、ふつうの名前のブランチ | |
| コミットグラフ | コミットとその親子の関係を、線でつないだ図 |
学生が入力するセルは、このプレビューでは空白です。
練習用のメニューを用意する
最初に、練習用の小さなリポジトリを作ります。メニューのファイルを1つ作って、最初のコミットをします。
名前をまだ教えていないなら、次の2行を先に打ちます。レッスン1で済ませていれば、要りません。
名前を教える2行(例)
git config --global user.name "Student"
git config --global user.email "[email protected]"リポジトリを作る
git init -q -b main menuここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
メニューのファイルを作る
printf "curry 900\nramen 800\n" > menu/menu.txtここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ステージに置く
git -C menu add menu.txtここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
最初のコミット
git -C menu commit -q -m "メニューを始める"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ブランチは、コミットを指す名前
ブランチの正体は、あるコミットを指す名前です。新しいコミットを作ると、今いるブランチの名前が、そのコミットまで進みます。
git switch -c add-tea は、add-tea という新しいブランチを作って、そこへ移ります。git branch は、ブランチの一覧を出し、今いるものに * を付けます。
ブランチを作って移る
git -C menu switch -c add-teaここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ブランチの一覧を見る
git -C menu --no-pager branchここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ブランチのコミットは、そのブランチだけに入る
add-tea の上で、メニューにお茶を足してコミットします。このコミットは、add-tea にだけ入ります。
log --graph は、コミットの親子を線で描きます。%d は、そのコミットを指しているブランチの名前を、括弧で出します。
お茶を足す
printf "tea 300\n" >> menu/menu.txtここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ブランチでコミットする
git -C menu commit -q -am "お茶を足す"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
グラフで見る
git -C menu --no-pager log --graph --all --format="%s%d"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
切り替えると、ファイルも切り替わる
git switch main で戻ると、作業ツリーのファイルが、main の内容に変わります。お茶の行は、見えなくなります。消えたのではなく、add-tea の中に残っています。
main..add-tea は、「add-tea にあって、main にない」コミットを指します。
main に戻る
git -C menu switch mainここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ファイルを読む
cat menu/menu.txtここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
add-tea だけのコミット
git -C menu --no-pager log --format="%s" main..add-teaここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
よくある間違い
注意
「ブランチを切り替えたら、変更が消えた」と慌てる人が多くいます。変更は消えていません。別のブランチに残っています。git switch で戻れば、また見えます。