Gitを使ってみよう!【ブランチ編】

Git

こんにちは、ECF Techブログ
担当 Michiです。

今回はGitを使ってみようシリーズの第4回「ブランチ編」です。よろしくお願いします。

本記事は、前回記事からの続きとなっています。本記事のみでもご活用いただける配慮はしておりますが、もしGitを初めて見たいというかたはどうぞご活用ください。

対象読者

  • コマンドプロンプト上でのコマンドであるcddirを使ったことがある
  • エクスプローラでファイル操作ができる
  • バージョン管理やgitって何?という方
  • ハンズオン形式で試せる資料がほしいという方

※なお、本資料はWindows向けの資料となっています。

前回はGitの基本となる操作をご紹介しました。今回は、バージョン管理機能の要ともいえるブランチについて学んでいけたらと思います。

ブランチとは

Gitを含め、バージョン管理システムでは特定の領域のファイルの変更履歴を記録しています。履歴ですので、次のような時間軸で記録されています。

ブランチはこの変更履歴を枝分かれさせて持つしくみです。

実際のシステム開発では1つの機能追加に何日も要するということも珍しくありません。そのため、自分だけの変更履歴をつくり、プログラムの変更記録を取りながら少しずつ開発を進めたいという要望があります。ブランチはそのような要望にこたえてくれるものです。

ブランチを作ってみよう

では実際にブランチを使っていきましょう。今回は開発者のAさんがprogram01.txtに記載されている機能Bのプログラムの別バージョンを試しに作成する。という想定で行ってみましょう。

ここからは前回記事の続きとして作成しますので、ご覧になりたい方はこちらのリンクをご利用ください。

ではまずコマンドプロンプトを開き、ローカルリポジトリを作成したC:\work01\hello_repoに移動します。

早速ブランチを作ります。git branch ブランチ名のコマンドでブランチを作成することができます。今回はAさん専用ブランチということで、onlyAという名前にします。

  • リポジトリを作った時点から存在するブランチにはあらかじめ「master」という名前がついています。
  • ブランチを作成することを「ブランチを切る」という場合があります。

次のコマンドを実行してください。

git branch onlyA

これでブランチが作成されました。が、まだ作成しただけです。作成したブランチで作業履歴を残していくためには、ブランチを切り替える操作が必要となります。この操作はチェックアウトと呼ばれ、git checkout ブランチ名コマンドで行なうことができます。次のとおり入力します。

git checkout onlyA

実行結果

Switched to branch 'onlyA'
C:\work01\hello_repo>

作業ブランチが切り替わりました。

ではこのブランチでプログラムを作成していきましょう。program01.txtを開き、次のようにします(※2行目が追加になっています)。

計算できる機能A
 +計算できる機能A-2
計算できる機能B

計算できる機能Aに新しい機能が追加されたイメージです。

ではこの時点でコミットしましょう。下のコマンドでファイルをコミット対象にします。

git add .

この時点でgit statusコマンドを使って、いまのリポジトリの状態を見てみましょう。次のコマンドになります。

git status

実行結果

On branch onlyA
Changes to be committed:
  (use "git restore --staged ..." to unstage)
        modified:   program01.txt

ブランチがonlyAであること、program01.txtが modified(修正されている) 状態であることがわかります。

では、git commitコマンドでコミットしましょう。次のコマンドを実行します。

git commit -m "A-2を追加"

実行結果

[onlyA 046bec1] A-2を追加
 1 file changed, 1 insertion(+), 1 deletion(-)

コミットが完了しましたので、元のブランチに戻ってみましょう。ブランチの移動はgit checkout ブランチ名です。次のコマンドを実行します。

git checkout master

ブランチを移動したら、program01.txt を開いてみましょう。

計算できる機能A

計算できる機能B

追加したA-2の機能がなくなり、元に戻っていることがわかります。つまりmasterブランチは全く別の管理であることがわかります。

これで今後どれだけブランチでの作業を行なったとしても、すぐに元の状態に戻すことができます。

ではonlyAブランチに戻って作業を続けましょう。次のコマンドでブランチを移動します。

git checkout onlyA

移動したらprogram01.txtを開き、次のようにします。(※3行目が追加になっています)

計算できる機能A
 +計算できる機能A-2
 +計算できる機能A-3
計算できる機能B

保存したら次の流れで、コミットします。

git add .

git commit -m "機能A追加対応完了"

実行結果

[onlyA 3d917c3] 機能A追加対応完了
 1 file changed, 1 insertion(+)

コミットが完了しました。このあとこれらの追加プログラムの動作テストを終え、本来のプロジェクトであるmasterブランチにプログラムを統合することになったとしましょう。この統合作業はマージ(merge)と呼ばれています。

マージをしよう!

マージを行なうのは簡単です。git mergeコマンドを利用します。今回onlyAブランチをmasterブランチにマージしたいので、一度masterブランチへ移動します。

git checkout master

実行結果

Switched to branch 'master'
Your branch is up to date with 'origin/master'.

次にgit mergeコマンドを実行します。

git merge onlyA

実行結果

Updating bcaa3ed..3d917c3
Fast-forward
 program01.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

マージが正しく完了しました。マージ作業が正しく完了すると、そのブランチにおけるコミットも終了した状態となります。またマージ(統合)したからといって、onlyAブランチがなくなったわけではありません。

masterブランチの状態でprogram01.txtを開いてみましょう。

計算できる機能A
 +計算できる機能A-2
 +計算できる機能A-3
計算できる機能B

onlyAブランチで行なった変更が反映されています。

ここまでの各ブランチの履歴をまとめると、下図のイメージとなります。
※図中の時間はイメージです。

最後にリモートリポジトリにPushしておきましょう。次にコマンドでOKです。

 git push origin master

おわりに

今回はここまでとさせていただきます。最後までご覧くださりありがとうございました。

ブランチを活用できると機能追加を試したり、Webサイトの別のデザインを試したりなど、気軽にテスト作業ができるようになります。どんどんブランチを作っていきましょう。(※Gitではブランチをどんどん作って作業をするスタイルが推奨されています。)


合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。

ECFエデュケーション
タイトルとURLをコピーしました