LotosLabo

プログラミング技術とか気になった情報を載せていきます

Gitについて4

今回はブランチというの紹介していきます。

branch 分岐、枝分かれという意味です。

このGitでも同じように枝分かれて作業するという意味です。

branchによって分けて作業を行えることが可能になります。

Branchを使ってみる

ブランチを作成してみます。

まずブランチの一覧を表示するコマンドを紹介します。

git branch -a

f:id:lo25131:20140222230842j:plain


master しかないのでこれしか表示されません。
これはデフォルトで設定されているブランチです。


ブランチを作成します

git branch develop

git branch ブランチ名

というコマンドを入力すると作成できます。


f:id:lo25131:20140222231309j:plain


次にブランチを変更するコマンドとして

git checkout develop

git checkout ブランチ名


前使ったcheckoutと同じですが、今回は使いかたが異なりますのでごっちゃにならないように


f:id:lo25131:20140222231500j:plain


今作業中のブランチは緑色になり、左に * のマークが付きます。
また、作業しているディレクトリ名の横にも(develop)というのに変更されます。


ここでHEADという作業している場所が移動したことになります。


ブランチの削除


git branch -d develop


と入力すると削除できます。
なお、削除するブランチは自分が今いるブランチは削除できませんのでご注意を…


f:id:lo25131:20140223001726j:plain

ブランチの統合

作業が完了したトピックブランチは、最終的に統合ブランチに統合されます。 ブランチの統合には、mergeを使う方法と、rebaseを使う方法の2種類があります。どちらを使うかで統合後のブランチの履歴が大きく異なります

merge
変更内容の履歴はそのまま残るが、履歴が複雑になる。

rebase
履歴は単純になるが、元のコミットから変更内容が変更される。

とそれぞれ特徴があります。


例を使って説明します。


f:id:lo25131:20140223010000j:plain



file.txt をこのように編集し、addしcommitもしました。


次にcheckoutしてdevelopブランチに移ります。

f:id:lo25131:20140223010112j:plain


こちらでは先ほど入力した行のところを削除して違う行に文字を入力しました。


masterに移ります。


f:id:lo25131:20140223010224j:plain


file.txt の内容を見るともちろん内容は変わっていません。これがブランチの特徴です。



そしてマージをします。

git merge develop


f:id:lo25131:20140223010336j:plain


しかし、masterでは記述されていた文字の行を消して、違う文字を入力してしまったために、
エラーが出てしまいました。


これをGitでは マージの衝突と言います。コレを解決する方法は簡単です。


vimで開いてみましょう。


すると


f:id:lo25131:20140223010537j:plain

意味の分からない記号が入力されていますが、この意味の分からない記号を全て削除してしまえばいいのです。


このように

f:id:lo25131:20140223010630j:plain



そしてまたadd してcommitすれば


f:id:lo25131:20140223010642j:plain



値が追加されてdevelopで入力した文字列がmasterにも反映されました!


f:id:lo25131:20140223010731j:plain


rebaseも同じ要領でやっていきます。



まとめ


今回はローカルリポジトリを主に紹介していきましたが、オンライン下、複数人で使うときにはリモートリポジトリという方法を使っていきます。
そちらではかなり処理が複雑になり、今回紹介できなかった、fetch、pull、pushといったコマンドを使うことになります。
個人でアプリ開発する分にはあまり使用しないかもですが、団体に所属するともはや必須となってきますので覚えておいて損はない知識だと思います。


参考サイトと書籍


サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ

いつやるの?Git入門

イラストでわかる!git入門の入門 : アシアルブログ

↓こちらにてPro gitの日本語版がPDFで無料で公開されています
Pro Git 日本語版電子書籍公開サイト


Gitポケットリファレンス

Gitポケットリファレンス

アリスとボブのGit入門レッスン

アリスとボブのGit入門レッスン