Gitブランチの基礎を学ぼう

ブランチとは複数の作業を並行して行う際などに、作業履歴を分岐させることが出来る機能です。

吉田先生

一番最初のコミットの時点で、「masterブランチ」というブランチが作成されます。


ブランチとは

ブランチとは複数の作業を並行して行う際などに、作業履歴を分岐させることが出来る機能です。一番最初のコミットの時点で、「masterブランチ」というブランチが作成されます。

そして、分岐させたい時に「トピックブランチ」と呼ばれるブランチを作成します。たとえば、完成形はmasterブランチ、新機能の追加はトピックブランチA、修正はトピックブランチBというような形です。

ブランチでの作業は他のブランチには影響しません。また、トピックブランチを他のブランチに合流させることも出来ます。

トピックブランチを作成

ブランチを作成するには「git checkout -b」というコマンドを実行します。「-b」のあとにブランチの名前を記述します。では、例としてお問い合わせフォームを作成するためのブランチを作ってみましょう。

(master) $ git checkout -b contact-form
Switched to a new branch 'contact-form'
(contact-form) $

「contact-form」というブランチが作成され、更にmasterブランチからcontact-formブランチに切り替わっていますね。

では、現在のブランチとブランチ一覧を確認するコマンドを実行してみましょう。これは「git branch」と実行します。

(contact-form) $ git branch
* contact-form
  master

このように現在のブランチには「*(アスタリスク)」が付きます。

ブランチの切り替え

前セクションでブランチでの作業は他のブランチには影響を与えないとお話ししましたね。では、実際に確かめてみましょう。例として、「contact-form」ブランチにて前レッスンで作成した「index.html」に変更を加えコミットしてみましょう。

index.html

<code class="language-html">変更例:&lt;h1>zooloppa ズーロッパ&lt;/h1>
              &lt;img src=panda.jpg alt=panda>
                
    &lt;h1>zooloppa ズーロッパ&lt;/h1>
              &lt;img src=panda.jpg alt=panda>
              &lt;a href="#">お問い合わせフォームへ&lt;/a>
</code>
(contact-form) $ git add index.html
(contact-form) $ git commit -m "Add contact to index"
[contact-form 8fa5c53] Add contact to index
 1 file changed, 1 insertion(+)

では、masterブランチへと切り替えてみます。切り替えるには「git checkout 〇〇」とします。「〇〇」の部分は切り替えたいブランチ名が入る場所です。今回はmasterブランチへの切り替えですので下記の様なコマンドになります。

(contact-form) $ git checkout master
Switched to branch 'master'
 (master) $

masterブランチに切り替わりましたね。では、「index.html」を見てみましょう。追加したはずの「お問い合わせフォームへ」がなくなっています。このように、他のブランチに影響を与えず編集していけるという事ですね。

マージ

では続いて、ブランチを他のブランチにマージする方法を学んでいきましょう。マージとはブランチを他のブランチに合流させることです。

たとえば、「contact-form」ブランチにてお問い合わせフォームを完成させたとします。しかし、そのままではmasterブランチ上にはお問い合わせフォームは反映されません。ですので、分岐させた「contact-form」ブランチを「master」ブランチにマージする必要があります。

では、新たに「contact.html」というファイルを作成してコミットします。

(master) $ git checkout -
  Switched to branch 'contact-form'
(contact-form) $ touch contact.html
(contact-form) $ git add contact.html
(contact-form) $ git commit -m "Create contact.html"
[contact-form c9c1291] Create contact.html
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 contact.html

1行目の「git checkout -」は、1つ前のブランチに戻る為のコマンドです。

では、マージしてみましょう。マージする場合、取り込む側のブランチで作業する必要があります。今回は「master」ブランチに取り込みたいので「master」ブランチに移動します。

(contact-form) $ git checkout -
Switched to branch 'master'

 

そして、マージするためのコマンド「git merge」を実行します。このコマンドの後に取り込まれる側のブランチ名を記述します。

(master) $ git merge contact-form
Updating e36ac23..c9c1291
Fast-forward
 contact.html | 0
 index.html   | 3 ++-
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 contact.html

これでマージは完了です。

まとめ

作業履歴を枝分かれさせられる機能をブランチといいます。そして、枝分かれ先のブランチをトピックブランチといいます。

トピックブランチでの作業は他のブランチに影響を与えません。また、ブランチを他のブランチに合流させまとめることが出来ます。

無料ビデオ講座のお知らせ

Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。

無料講座一覧を見る

×