ロボット研究開発、ソフトウェア開発、コンテンツ制作配信

【Git基本】ローカル環境でGit管理してみよう②(ブランチについて)

どうもこんにちは、InomaCreateです。
前回の記事で、ローカル環境でGitを使う場合のコミットまでの基本的な流れについて説明しました。(↓前回記事)
【Git基本】ローカル環境でGit管理してみよう

今回は、Gitのブランチ機能について説明したいと思います。

スポンサーリンク

動画解説

YouTubeに解説動画もアップしていますので、よろしければどうぞ。

ブランチとは?

ブランチとは、変更記録の流れを分岐する仕組みです。
厳密に言うと、ブランチというのは、コミット場所を指すポインタになります。
gitのリポジトリを作ったときに、まずmasterブランチが作られ、普段はmasterブランチが使われています。
別のブランチを作ることで、以下のように変更の記録を枝分かれさせていくことができます。

さて、なぜ変更の記録を分岐していく必要があるかを説明します。
開発を行っていると、仕様変更や不具合修正など様々な変更が入ってきます。
例えば、「製品に入れるかどうかは分からないが、とりあえずXXのお試し機能追加してほしい」とか、「やっぱり先に別の機能を入れてほしい」等、様々な変更が同時に上がってきます。
それをmasterブランチだけで変更を管理していくと、masterに大きな影響を与えてしまい不具合を発生させてしまったり、また元に戻すのも大変になります。
したがって、ブランチ機能で別のブランチに枝分かれさせ、別の枝に変更を入れ、しっかりと検証してから、masterにマージ(合体)させるという流れをとることが多いです。
とうことで、一旦masterが固まったら、ブランチを作りながら、追加の変更を入れていくのをおすすめします。

ブランチを作る理由
別のブランチを作って変更を入れることで、masterブランチに影響を与えないようにするため

ブランチの作り方

では、実際に操作しながらブランチを作ってみましょう。
※前回記事で作った環境で試していきます。
まずは、現状のgit logを見てみましょう。

$ git log

上図のように
(HEAD -> master)
という表記がありますね。

これは、現在のブランチがmasterというブランチを指していることを表しています。
※Gitで最初にコミットすると、デフォルトでmasterブランチが作成されます。
※HEADは今どこのブランチにいるかを示している矢印のようなものだと思ってください

現在のコミットとブランチ、HEADの関係は以下のようになります。

ブランチを作る

では、実際にブランチを作ってみましょう。
以下のコマンドを打って、sample_branchというブランチを作ってみましょう。

$ git branch sample_branch

git logを見てみましょう。

$ git log

上図のように、
(HEAD -> master, sample_branch)
となり、
masterの横にsample_branchという名前が増えました。これはブランチが追加されたことを示しています。

現在のコミットとブランチ、HEADの関係は以下のようになります。

今はHEADがmasterを指していますので、
sample_branchブランチ側に切り替えてみましょう。

$ git checkout sample_branch

これで、ブランチ側に切り替わったはずです。git logを見てみましょう。

(HEAD->sample_branch)
HEADがsample_branchを指していますね。これでブランチがmasterからsample_branchに切り替わりました。

現在のコミットとブランチ、HEADの関係は以下のようになります。

さて、この状態で、何かファイルに変更を加えて、コミットしてみましょう。
テキストファイルに以下を追記します。

$ git add test.txt
$ git commit

git logを見てみましょう。すべてのbranchのログを見たいので”–branches”オプションを付けます。

$ git log –branches

上図のように表示されました。
masterブランチの上に、sample_branchの変更が来ています。

現在のコミットとブランチ、HEADの関係は以下のようになります。

この状態で、ブランチをmasterに戻してみましょう。

$ git checkout master

git logを見てみましょう。

$ git log –branches


上のように、HEADがmasterに切り替わりました。
(HEAD -> master)
もちろんファイルの中身もsample_branchで変更した内容が入っていないですね。

現在のコミットとブランチ、HEADの関係は以下のようになります。

マージする

では、sample_branchの変更が問題なく、masterに反映させてよいとなったとします。
そこで以下のコマンドを打ちましょう。

$ git merge sample_branch

※この時、HEADは、master(マージされる側)にしておく必要があります。

ファイルを確認してみましょう。
sample_branchの内容が反映されていると思います。
git logを見てみましょう。

$ git log –branches


masterとsample_branchが同じコミット位置にいますね。
そして、HEADは、masterを指しています。
ファイルの中身も確認してみてください。sample_branchで追記した内容が反映されているはずです。
これで、sample_branchの変更内容がマスターにも反映されました。

現在のコミットとブランチ、HEADの関係は以下のようになります。

ブランチを削除する

sample_branchの修正は、master側にマージされましたので、sample_branchブランチを削除しておきます。
ブランチを削除するには、以下のコマンドを入力します。

$ git branch -d sample_branch

git logを見てみましょう。

$ git log –branches


sample_branchが無くなっていると思います。

現在のコミットとブランチ、HEADの関係は以下のようになります。

最後に

さて、ここまで
ブランチの作成、マージのやり方を解説しました。
前回の解説と合わせると、コミット→ブランチ→マージなど、Gitの基本的な部分を解説してきました。
まだまだ紹介できていないGitの機能がありますので、これからも少しずつ解説していこうと思います。

少しでも皆さんの参考になれば幸いです。
それでは!!

スポンサーリンク

いいね!を押すと、
最新記事をお届けします。

Twitter で
関連記事(一部広告含む)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ページトップボタン