本連載「こっそり始めるGit/GitHub超入門」では、バージョン管理システム「Git」とGitのホスティングサービスの1つ「GitHub」を使うために必要な知識を基礎から解説していきます。具体的な操作を交えながら解説していきますので、本連載を最後まで読み終える頃には、GitやGitHubの基本的な操作が身に付いた状態になっていると思います。
連載第3回目の本稿のテーマは「ブランチの基本」です。
前回の「“はじめのGit”――超基本的な作業フローと5つのコマンド」では「Gitの基本的な作業フロー」を解説しましたが、「ブランチ」についてはほとんど触れませんでした。
今回は実際に作業を進めていきながら「ブランチ」の基本的な要素を解説していきます。
英単語「branch」は「枝」「支流」などの意味を持ちます。Gitの用語としての「ブランチ」は、「コミット履歴の流れを枝分かれさせるための機能」のことを指します。開発の本流から枝分かれしたブランチは他のブランチから独立した環境を持つことができるので、開発作業を平行して進めていくことができます。
手を動かしながらの方が理解しやすいと思いますので、作業を開始しましょう。次章で準備を行って、その次の章から「ブランチ」に関する操作を試していきます。
まずは、連載第2回と同じ操作を行って、「ブランチ」を試すための環境を作ります。連載第2回に沿ってリポジトリの作成とコミット2回を行っている場合は、読み飛ばして「カレントブランチを確認」の章に進んで構いません。
適当なディレクトリに移動し、Gitリポジトリを作成します。
$ cd /Users/hirayashingo/Documents/hello-git-2 $ git init Initialized empty Git repository in /Users/hirayashingo/Documents/hello-git-2/.git/
「hello.txt」ファイルを追加し、ステージして、コミットします。
$ echo Hello > hello.txt $ git add hello.txt $ git commit -m "first commit" [master (root-commit) dc32bd2] first commit 1 file changed, 1 insertion(+) create mode 100644 hello.txt
「hello.txt」ファイルの内容を変更し、ステージして、コミットします。
$ echo goodbye >> hello.txt $ git add hello.txt $ git commit -m "edit hello.txt" [master 998e5a0] edit hello.txt 1 file changed, 1 insertion(+)
リポジトリがあるディレクトリに移動していない場合は、移動します。
$ cd /Users/hirayashingo/Documents/hello-git-2
「現在、どのブランチにいるか」を確認する方法はたくさんあります。
まずは、「git status」コマンドを使用してカレントブランチ(現在いるブランチ)を確認してみましょう。
$ git status On branch master nothing to commit, working directory clean
「On branch master」と表示されます。現在「master」という名前の「ブランチ」にいることを表しています。
「git branch」コマンドを使用して、カレントブランチを確認することもできます。「git branch」コマンドはブランチの一覧を表示するコマンドです。
$ git branch * master
現在「master」ブランチしかないので「master」だけ表示されます。また、カレントブランチの名前の左には「*」が表示されます。
「一連のコミット履歴」で構成される「枝」のことを「ブランチ」と呼びますが、「ブランチ」の実体は、「一連のコミット履歴」の最新のコミットを指すポインタです。図2でいうと、「master」と書かれた黄色の矢印や「HEAD」と書かれた赤色の矢印のことです。
「git log --oneline --decorate」コマンドを使用すれば、「ポインタが、どのコミットを指しているか」が分かります。これまでに2回コミットを行ってきましたが、現在、「master」は最新のコミット(2回目のコミット)を指しています。
$ git log --oneline --decorate 8a0afb3 (HEAD -> master) edit hello.txt 8d7430a first commit
上記メッセージに出てきた「HEAD」は基本的にカレントブランチを指します。
Copyright© 2016 ITmedia, Inc. All Rights Reserved.
@IT編集部では、編集記者を募集しています。ご興味のある方は奮ってご応募ください。