GitHubのブランチとは?
まず、GitHubのブランチとは何かについて解説します。ブランチとは、ファイルを枝分かれさせ別々に保存できる機能のことです。
たとえば「github.txt」というファイルがある場合、ブランチによって「github.txt」の変更Aと変更Bを作成することができ、それぞれのブランチで編集を行うことが可能です。
GitHubを使う場合ブランチは必ずと言って良いほど使う機能です。ブランチはシステム開発の効率化に大きく貢献しているため、GitHubを学ぶならまず押さえておきたいでしょう。
ブランチに関連する用語の意味
続いて、ブランチに関連する用語の意味について解説します。これらの用語の意味を理解していないと、ブランチを学ぼうと思っても参考書やサイトの解説内容が理解できなくなってしまいます。まずは用語の意味をきちんと押さえましょう。
masterブランチ
masterブランチは初期状態のときから存在するブランチのことです。レポジトリにブランチを作っていない状態だと、masterブランチのみがレポジトリに存在し、ファイルは自動的にここに登録されることになります。
ブランチを新たに作成し、作業ブランチを切り替えることで、master以外にもファイルを登録することが可能です。
チェックアウト
チェックアウトとは自分の作業用ブランチを切り替えることです。ブランチを作成してもそのままの状態だとそのブランチには保存されないため、作業ブランチの切り替えが必要です。
GitHubにはチェックアウト用のコマンドがあり、入力することで切り替えが可能です。チェックアウトはいつでも行うことが可能です。
マージ
マージとは枝分かれしたブランチを統合させることです。システム開発でブランチを使う場合、最終的には全てのブランチを統合させ、masterブランチにまとめなくてはいけません。
GitHubにはマージ用のコマンドも用意されており、簡単にブランチのマージが可能です。なお、マージしてもmasterブランチのファイルが書き換わるだけで、ブランチが削除されることはありません。
GitHubのブランチを使うメリット
ブランチはGitHubを支えている主要機能の1つです。GitHubのブランチを使うメリットは次の3つです。ブランチを使うことでどういったメリットがあるのか知ることで、よりブランチを使いこなせるようになるでしょう。
他の開発者に作業内容を上書きされる心配がない
GitHubでブランチ作成を行うことで、他の開発者に作業内容を上書きされる心配がなくなります。ブランチによって作られた変更Aと変更Bは独立して存在し、相互に影響を与えることはないため、安心して編集することが可能です。
システム開発でプログラムを改良しなくてはならないのに、他の作業者がそのプログラムに別の改良を行っている最中だった、ということは良くあります。他の作業者を気にせずそのプログラムを改良して保存すると、後で他の作業者に作業内容を上書きされてしまうかもしれません。
そのため同時に同じファイルを編集する場合、作業順番を決める必要が出てきます。ただ、一々順番を決めるのは非効率です。ブランチ作成を行いファイルを枝分かれさせれば、この問題を解決することができます。
開発作業別に履歴を残せる
GitHubでブランチ作成を行えば、開発作業別に履歴を残すことができます。既に稼働中のシステムに不具合が生じた際、プログラムのどこに問題があるか迅速に特定し、被害を最小限に食い止めないといけません。
ブランチごとに履歴が残っていれば、誰のどの時点での作業によって不具合が発生したのか調べやすくなり、被害の拡大を食い止めやすくなります。また、作業担当者ごとに履歴が残るため責任の所在を明らかにしやすいです。
GitHubのコマンドでブランチを作成する方法
続いて、GitHubでブランチを作成してブランチ内でファイル編集を行う方法について解説します。ここでは、masterブランチと新規のブランチで別々のファイルを作成できるようになることをゴールとします。
ブランチ機能はGitHubに慣れていないと若干複雑なので、1つ1つの肯定を丁寧に解説します。
新しくブランチを作成する
まず、新規でブランチを作成します。ここでは「branch_test」というブランチを作成してみます。
コマンドプロンプトから「git branch」と入力すると現在のブランチ一覧が表示されます。初期状態では「master」のみが表示されるはずです。
「git branch branchtest」と入力すると、「branchtest」ブランチが作成されます。再び「git branch」と入力してみましょう。「branch_test」が一覧に追加されているのか分かるはずです。
作業ブランチを切り替える
「git branch」と入力すると「master」の横に「」が表示されています。「」は作業ブランチを示すマーチです。このままではmasterにファイルが登録されてしまうので、作業ブランチを「branch_test」に変更します。作業ブランチを変更することをチェックアウトと呼びます。
「git checkout branchtest」と入力すると、「branchtest」に作業ブランチが切り替わります。再び「git branch」と入力すると、「branch_test」の横に「*」が表示されています。
ローカルリポジトリを作成する
ブランチ機能を試すために、ローカルリポジトリを作成します。ここでは練習用として「github」フォルダを作成します。「mkdir github」と入力しフォルダを作成し、「cd github」でそのフォルダに移動しましょう。
「git init」と入力するとローカルリポジトリが作成されます。
ブランチにファイルを作成する
次に、ブランチ内にファイルを作成してみます。「github」フォルダの中に「test.txt」というファイルを作成しましょう。ファイルの中身は何でも良いですが、ここでは「Hello World」とします。
ブランチにファイルをコミットする
次に、ブランチにファイルをコミットします。変更したファイルを登録することを、コミットと呼びます。
GitHubではコミットする前にまず、インデックスに登録しないといけません。「git add test.txt」と入力すると、「test.txt」がインデックス登録されます。
コミットする際は「git commit -m "ブランチテスト"」と入力してください。「git commit」だけでも良いのですが、viによるコメント入力を求められるので、vi操作方法が分からない方は、「-m」オプションによってコメント入力した方が簡単でしょう。
コミットまでできれば、ブランチ機能を試す準備の完了です。
ブランチが機能しているか確認する
最後に、ブランチが正しく機能しているか確認しましょう。ここまでコミットしたファイルは、「branch_test」の方に登録されているはずです。
「git checkout master」と入力して作業ブランチを「master」に切り替えます。そして、「test.txt」
の中身を「Hello World」から「ブランチ切り替えテスト」に変更して上書き保存してください。
保存したら先ほど同様に、インデックス登録およびコミットを行います。これで変更した「test.txt」が「master」の方に登録されました。
「git checkout branch_test」と入力して作業ブランチを戻します。「more test.txt」でファイルの中身を確認しましょう。ファイルの中身が「ブランチ切り替えテスト」ではなく「Hello World」になっていれば、ブランチが正しく機能しています。
これで「master」と「branch_test」で中身が異なる「test.txt」を作成することができました。以後、それぞれのブランチでファイルを編集することが可能です。
その他GitHubのブランチに関する操作方法
その他、GitHubのブランチに関する操作方法についてまとめました。ブランチごとのファイルをマージする方法やブランチの変更・削除を行う方法について説明しています。
masterブランチにマージする
マージとは複数のブランチにあるファイルを1つに統合することです。GitHubにはブランチをマージできる機能が備わっています。「git merge【マージしたいブランチ】」と入力すると、現在の作業ブランチのファイルにマージすることが可能です。
ブランチ名を変更する
ブランチ名は後で自由に変更することが可能です。変更する際は「-m」オプションを使います。「git branch -m 【名前を変えたいブランチ】【新規ブランチ名】」と入力すると「新規ブランチ名」に変更することが可能です。
ブランチ削除を行う
使わないブランチを誤って作成してしまった場合は削除しましょう。削除する際は「-d」オプションを使います。「git branch -d 【削除したいブランチ】」と入力することで削除が可能です。
ブランチ作成を不自由なくできるようになればGitHubを使いこなせる
本記事では、GitHubでブランチ作成を行う方法についてまとめました。ブランチに関連する用語の意味や、ブランチ作成の方法などがお分かりいただけたかと思います。
ブランチ作成はGitHub初心者がつまずきがちなものの1つです。ブランチの基本的な作成方法を理解したら、自分で何度も練習を行ってみましょう。
システム開発では、作業効率を高めスケジュール通りに進めることが重要です。システム開発の需要が高まってきた昨今、チーム間で上手く連携を取り作業スピードを早めることは大切ですので、GitHubの利用率は今後も高まるのではないかと推測されます。
本記事をきっかけにGitHubに興味を持った方は、ぜひGitHubの勉強を行ってみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから