Git実践② ブランチを作って安全に変更しよう
Gitのブランチを作り、別の作業としてコミットしてからmainへ統合する流れをやさしく解説します。
プログラムを変更するとき、「動いている状態を残したまま試したい」と感じることがあります。
そこで使うのがブランチです。ブランチは、変更履歴から枝分かれした作業場所です。コミットがまだなら、先にGit実践①を終えてください。
ブランチを確認する
現在のブランチは次のコマンドで確認できます。
git branch
行の先頭に*があるものが、現在いるブランチです。この記事では基本のブランチ名をmainとして説明します。
作業用ブランチを作る
次のコマンドは、feature/headerというブランチを作り、そのブランチへ移動します。
git switch -c feature/header
featureは機能追加という意味です。名前に作業内容を入れると、目的が分かりやすくなります。
変更をコミットする
HTMLの見出しを変更したと仮定し、状態を確認してコミットします。
git status
git add index.html
git commit -m "ページの見出しを変更"
このコミットはfeature/header側にだけ追加されます。mainへ戻ると、変更前の状態を確認できます。
git switch main
mainへ統合する
作業内容に問題がなければ、mainにいる状態で統合します。
git merge feature/header
この統合をマージと呼びます。マージ後にgit log --onelineを実行すると、作業用ブランチのコミットも履歴に含まれます。
コンフリクトが起きたら
別のブランチで同じ行を違う内容に変えると、Gitが自動で選べないことがあります。これがコンフリクトです。
対象ファイルには、両方の変更を示す印が入ります。必要な内容へ手で整え、動作を確認してからgit addとgit commitを行います。慌てて片方を消さず、まずgit statusで対象を確認してください。
練習:説明追加用のブランチを作る
feature/descriptionを作り、README.mdへ1行追加してコミットしてください。最後にmainへマージします。
模範解答
git switch -c feature/description
# README.mdを編集して保存する
git add README.md
git commit -m "READMEに使い方を追加"
git switch main
git merge feature/description
解説
変更は作業用ブランチで記録され、最後にmainへ入ります。各コマンドの間でgit statusやgit branchを使うと、現在地を確認しながら進められます。
次はGitHub実践③ pushとpullで変更を共有しようで、手元の履歴をGitHubへ送ります。