ブランチとマージ
作業を分けて後で合流させます。ブランチが軽いと分かれば、GIT の使い方が変わります。
学習目標
- ブランチを作って作業を分けられる
- マージし、コンフリクトを自分で解決できる
- ブランチ名の規則と基本戦略を知る
ブランチはコミットを指す名札にすぎません。ファイルをコピーしないので、作るのも消すのもほとんどコストがかかりません。だから GIT では機能ひとつ、バグひとつごとにブランチを作るのが普通です。git switch -c 名前 で作ると同時に移動し、作業が終われば元のブランチに戻って合流させます。
合流は git merge です。2つのブランチが別々のファイルを直していれば GIT が自動で合わせます。同じファイルの同じ行を別々に直していれば、GIT は推測せずコンフリクトを表示して止まります。コンフリクトはエラーではなく、「ここは人が決めろ」という合図です。
コンフリクトが起きるとファイルの中に <<<<<<<・=======・>>>>>>> の印が入ります。上が現在のブランチ、下が取り込む側の内容です。どちらかを選ぶか両方を合わせて正しいコードを作り、印の行をすべて消してから git add してコミットすればマージ完了です。ブランチ名は feature/・fix/・chore/ のように目的を前に付けると、一覧を見るだけで何の作業か分かります。
このステップで覚えるコマンド
目で読むだけでなく、実際にターミナルで打ってみてください。手が覚えて初めて実務で出てきます。
git switch -c feature/login- ブランチを作ると同時にそこへ移動します。
git switch main- 合流先のブランチに戻ります。
git merge feature/login- 作業を終えたブランチを合流させます。コンフリクトが起きれば GIT は止まって判断を求めます。
git branch -d feature/login- マージ済みのブランチを削除します。片づけておくと一覧が読めます。