こんにちは。甘いお菓子が大好きなイッシーです(´〜`)mgmg。世は既にバニラアイスの季節ですね!

今回はバニラアイスとは関係がありませんが、Gitでのバージョン管理をほんの少しだけ掘り下げてブランチを使ってみることにします。ブランチとはmasterから派生し枝分かれした部分です。木の枝と違うのは枝分かれした部分が幹に融合する事があることでしょうか。ブランチを使えばビジネス的な承認が得られていないバージョンをそのままにしておき、次のバージョンに向けた作業を始めることが簡単にできます。効率化万歳\(^o^)/

では早速、以下のようにしてhogeという名前のブランチを作ります。

[cc lang="bash"]
git branch hoge
[/cc]

コレでおしまいです。簡単ですね。以下のコマンドで作ったブランチを確認しましょう。

[cc lang="bash"]
git branch hoge
[/cc]

以下のように表示されます。

[cc lang="bash"]
* master
hoge
[/cc]

アスタリスクがついているものが現在選択されているブランチです。新しく作ったブランチに変更を加えるには、ブランチを切り替える必要があります。

[cc lang="bash"]
git checkout hoge
git branch
[/cc]

以下のように表示されると思います。

[cc lang="bash"]
master
* hoge
[/cc]

以後の作業は全てhogeブランチに反映されるとこになり、何もしなければmasterに変更を及ぼすことはありません。checkoutをすることによってmasterと並行して作業をすすめることができます。

■マージ

枝分かれした方の変更点をmasterブランチに反映させたい時があります。そんな時に使うのがマージです。

説明のための作業

以下のコマンドでmasterブランチに切り替えたあと、ファイルを追加しコミットします。

[cc lang="bash"]
git checkout master
touch public_html/gomi.html
git add .
git commit -a -m “add trash file for the test”
[master 94cf4d1] add trash file for the test
1 files changed, 35 insertions(+), 0 deletions(-)
create mode 100644 public_html/trash.html
[/cc]

以下のコマンドでhogeブランチに切り替えたあと、ファイルを追加しコミットします。

[cc lang="bash"]
git checkout hoge
touch public_html/gomi.html
git add .
git commit -a -m “add gomi file for the test”
[hoge b6e5b56] add gomi file for the test
1 files changed, 35 insertions(+), 0 deletions(-)
create mode 100644 public_html/gomi.html
[/cc]

お待たせしました。マージです。以下のコマンドでhogeブランチで行った変更をmasterにマージします。

[cc lang="bash"]
git checkout master
git merge hoge
Merge made by recursive.
public_html/gomi.html | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
create mode 100644 public_html/gomi.html
[/cc]

圧縮コミット

バグフィックスなどの際にブランチを作りまとめてコミットしたい場合、変更履歴をまとめて1つにしコミットしたいですよね。そんな時は以下のようにマージします。

[cc lang="bash"]
git checkout master
git merge –squash hoge
[/cc]

チェリーピック

別ブランチの特定の1コミットをマージしたい場合は以下のようにします。

[cc lang="bash"]
git checkout master
git cherry-pick b6e5b56
[/cc]

別ブランチで作業をしてくれている人がバグを潰してくれた場合もコミット名が分かれば簡単にマージできます。

■タグ

目印のようなものでリリースなどの際にはタグをつけておいた方が分かりやすいと思います。

[cc lang="bash"]
git tag 1.0 hoge
[/cc]

いかがでしょうか?ブランチを作っておけば良かったかもとか思う今日この頃です。ちなみにですが以下のコマンドで特定のコミットを元にブランチを作ることができます。

[cc lang="bash"]
git branch hoge b6e5b56
[/cc]

とまぁできるのですが、その時にやるのがやっぱり一番なのかなと・・・そんなこんなでバージョン管理は慣れが凄く大切だと思います。(。・ω・)ノ゙

Post Navigation