プログラミング

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 addgit 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 statusgit branchを使うと、現在地を確認しながら進められます。

次はGitHub実践③ pushとpullで変更を共有しようで、手元の履歴をGitHubへ送ります。

← 記事一覧へ戻る