Git入門#09(ブランチを作成してみよう)




cocomaru
hirominもだいぶGitに慣れてきたかなぁ
hiromin
うん!おかげ様で♪
cocomaru
じゃあ、そろそろブランチのことを学んでみようか!
hiromin
ブ、ブランチ??
cocomaru
今までhirominがファイルを保存したり、削除していた場所があるでしょ?
hiromin
うん、ある。リポジトリの事でしょ?
cocomaru
そうだね。ブランチっていうのはリポジトリ内でコミットした位置を指し示すものなんだ。
hiromin
ふーん(分かったような分からないような)。
cocomaru
またブランチは複数の機能を同時平行で開発するために使うものなんだ。チームで開発を行うには知っておかないと行けない事だから、今回からはしっかりと学んでいこうね!
hiromin
なるほど〜?!了解で〜す!

ブランチを表示してみよう

cocomaruです。

今回からブランチについて学んでいきましょう。

ブランチはGitだけでなく、他のバージョン管理システム(以下VCS)にも何かしらの形式で対応しています。
またブランチは上でも述べたように、コミットして記録した位置を示します。

※以下のようなイメージですね。

上記は今までのコミット履歴を表示して、ブランチのmaster[1]は、最新のコミットである「Commit3」を指しています。

ではこの状態をコマンドで確認してみましょう。

git branch

ブランチを確認するには「git branch」を叩いてください。

# 作業ディレクトリへ移動 
$ cd ~/Desktop/WorkDir/

# ブランチを表示 
$ git branch
* master

masterブランチが表示されたかと思います^^

またブランチは複数人で開発する時に本領を発揮します。
どういう事かというと、新規機能を開発したい場合、修正したい場合と、それぞれの担当者が作業を行う時はmasterブランチから、新しいブランチを切って作業ができます。
こうする事でmasterブランチに影響はなく、複数人で平行して機能を開発することができるのです。

ブランチを作ると以下のような構成になります。

ブランチを作成してみよう

git branch <ブランチ名>

ではコマンドを実行して作ってみましょう。

作るコマンドは「git branch <ブランチ名>」となります。

# ブランチを作成 
$ git branch feature

# 作成できたか確認 
$ git branch
  feature
* master

いかがでしょうか?
作成はできたかと思いますが、git branchで表示してみると、「feature」ブランチが作成されたことが確認できたかと思います。

よく機能追加・改修などを行う作業ブランチを作成する際、「feature」と名付ける事があります。
ブランチ名をスペルミス等で間違えて変更したい場合、
git branch -m <新ブランチ名>
で変更できますので、覚えておきましょう。

ただ今いるブランチ自体は、まだ「master」ブランチいます。
「*」がついてる先が今いるブランチです。

では移動してみましょう。

git checkout <ブランチ名>

ブランチへの移動は「git checkout <ブランチ名>」になります。

# 作成したブランチへ移動 
$ git checkout feature
Switched to branch 'feature'

# 移動できたか確認 
$ git branch
* feature
  master

移動できましたね^^

git checkout -b <ブランチ名>」でブランチの作成と移動を同時に行うことができる

featureブランチでコミットして、masterブランチに影響がないか確認してみよう

さて次は新しくファイルを作成して、featureブランチにコミットしてみましょう。

# 新規ファイル作成 
$ touch new.html 

# ファイル確認 
$ ls 
index.html new.html

# ステージングエリアへの追加 
$ git add new.html

# コミット 
$ git commit -m "新規ファイル作成" 

コミット後にログがどうなっているか、確認してみましょう。

# ログ確認 
$ git log --oneline
66ddb3b (HEAD -> feature) 新規ファイル作成
e033a11 (master) git diff練習用に1行追加
dec7055 git status練習用に1行追加
577fbc4 index.htmlを追加

新しくコミットログが作成された事が確認できました。

またログを確認すると「HEAD ->」という文字があるかと思います。
HEADは自分が作業しているブランチを指し示すものになります。

↓のようなイメージです。

ではmasterブランチへ移動して、今の作成された作業が影響しているか確認してみましょう。

# masterブランチへ移動 
$ git checkout master
Switched to branch 'master'

# ディレクトリの中身確認 
$ ls
index.html

# ログ確認 
$ git log --oneline
e033a11 (HEAD -> master) git diff練習用に1行追加
dec7055 git status練習用に1行追加
577fbc4 index.htmlを追加

masterブランチの中身やログを見ると、先ほど追加した「new.html」は存在してなく、ログにもない事が確認できましたね?

HEADも以下のような形で移動しました。

このようにしてブランチを使って、本流(master)に影響がなく開発できるイメージが持てたかと思います^^

ポイント
  • 平行して複数機能を開発するためにあるのがブランチである
  • ブランチはコミットして記録した位置を示すポインタである

cocomaru
どう?便利でしょブランチは?^^
hiromin
うん!一人で開発する時でも、複数機能を作るときに役に立ちそう!
cocomaru
うん!使い方も、しっかりとイメージできてるね。それさえ理解できたら今回はバッチリだ!
hiromin
えへへ^^あ、でも複数ブランチ作ったけど、それだとバラバラのままじゃない?masterには反映されていないよね?
cocomaru
お!いいとこに気づいたね!masterに反映するときは「マージ」を使うんだよ!じゃあ、次はマージについて説明しよっか。
hiromin
マージ?!ほーい!お願いします!

さて、以上でブランチの作成と移動について説明していきましたが、みなさまはイメージは掴めたでしょうか?

理解できなかった、ここが分からなかったという点があれば、ぜひコメントで質問ください♪

次はmasterブランチへ、他ブランチでの作業内容を反映するマージについて学んでいきますので、よろしくお願いします!

それでは、次回お会いできる事を楽しみにしてます!

Git入門#10(マージをしてみよう)

2018.08.11
  1. Gitではデフォルトで作られるブランチ名は「master」とつけられている。








コメントを残す

メールアドレスが公開されることはありません。