nigoblog

技術系会社のCEOブログ~私的編~

ちょっと進んだGit, Githubの使い方~ブランチ活用編~

f:id:nigohiroki:20120925223833p:plain

以前Gitの超入門的な記事を書きました。GitとGithubの使い方~超初級編~ - nigoblog

今回はそこから一歩進んで、これぞGitというような使い方を説明していきます。
この記事を読む前に最初に上の記事を読むことをおすすめします。

  1. ブランチとは?
  2. ブランチの作成

このような流れで説明します。

ブランチとは?

突然ですが、gitのロゴ(上部画像)の左側の図。何を示しているかわかりますか?
このロゴは

  • マスター
  • ブランチ

を表しています。

マスター、ブランチの使いどころ

例えばあるサイトに新しく新機能を追加させたいという時があります。しかし、既存のサイトになるべく手を加えないで完璧な状態で新機能をリリースしたいという状態になりがちです。リリース前ならば新機能の追加はそのままできるのに、ユーザーがたくさんいる状態ではなかなか既存のコードに手を付けられない。そういう時にブランチ機能を使います。

具体的には?

例えば、あるブログポータルサイトがあるとします。そこに新たにランキング機能を追加したい。その時に、ランキングブランチを作成します。ランキング機能はそのブランチのみにどんどん作っていき、最終的に完成したらマスター(既存のサイトのソースコードがある場所)にマージ(組み合わせ)します。
すると既存のサイトは通常運営しつつ新機能の作成がリスクなくできます。

ブランチの作成

というわけで早速ブランチの作成の方法をみていきます。
まずリポジトリがあるディレクトリで次のコマンドをうってください。

git branch -a

これはブランチを見るコマンドでオプションの 「 - a 」はリモートのリポジトリのブランチを見るオプションです。結果はつぎのような感じになります。

 * master
   remotes/origin/HEAD -> origin/master
   remotes/origin/master

緑の文字がローカルのリポジトリのブランチで
赤の文字がリモートのリポジトリのブランチです。

つまり現在はリポジトリにブランチが無い状態です。
では早速ブランチを作成します。

git checkout -b test origin/master

checkout はブランチ移動するコマンドでオプションに「 - b 」をつけることで新しくブランチを作りつつ、そのブランチに移動するというコマンドです。
また

git branch -a

で確認すると

  master
 * origin/test
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

となり、新たにブランチが作成されたことがわかります。
この状態で
index.html
などに変更を加えてみましょう。その後、それが正しく表示されているかどうかを確認してください。
次に、index.htmlをコミットします。

git add index.html
git commit

詳しくはGitとGithubの使い方~超初級編~ - nigoblogを参考に。

最後にリモートにブランチを追加します。

git push origin test

そして

git branch -a

で確認すると

  master
 * origin/test
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test

のようにリモートにブランチが追加されたことがわかります。
githubなんかでも確認してみるとよいでしょう。

確認後、よければマージしてマスターに機能を追加します。
それには次のコマンドを使います。

git checkout master
git merge test
git push

するとテストの内容がマスターに追加され、新機能として反映されます。


以上駆け足でしたが、ブランチの使い方でした。
ここまでが私が現在扱えるgitの使い方です。
これから新しく学んだ便利な使い方はどんどんブログにアップしていくのでよろしくお願いします。