【Git基本】ローカル環境でGit管理してみよう②(ブランチについて)
どうもこんにちは、InomaCreateです。
前回の記事で、ローカル環境でGitを使う場合のコミットまでの基本的な流れについて説明しました。(↓前回記事)
【Git基本】ローカル環境でGit管理してみよう
今回は、Gitの
動画解説
YouTubeに解説動画もアップしていますので、よろしければどうぞ。
ブランチとは?
ブランチとは、変更記録の流れを分岐する仕組みです。
厳密に言うと、ブランチというのは、コミット場所を指すポインタになります。
gitのリポジトリを作ったときに、まずmasterブランチが作られ、普段はmasterブランチが使われています。
別のブランチを作ることで、以下のように変更の記録を枝分かれさせていくことができます。
さて、なぜ変更の記録を分岐していく必要があるかを説明します。
開発を行っていると、仕様変更や不具合修正など様々な変更が入ってきます。
例えば、「製品に入れるかどうかは分からないが、とりあえずXXのお試し機能追加してほしい」とか、「やっぱり先に別の機能を入れてほしい」等、様々な変更が同時に上がってきます。
それをmasterブランチだけで変更を管理していくと、masterに大きな影響を与えてしまい不具合を発生させてしまったり、また元に戻すのも大変になります。
したがって、ブランチ機能で別のブランチに枝分かれさせ、別の枝に変更を入れ、しっかりと検証してから、masterにマージ(合体)させるという流れをとることが多いです。
とうことで、一旦masterが固まったら、ブランチを作りながら、追加の変更を入れていくのをおすすめします。
別のブランチを作って変更を入れることで、
ブランチの作り方
では、実際に操作しながらブランチを作ってみましょう。
※前回記事で作った環境で試していきます。
まずは、現状のgit logを見てみましょう。
上図のように
(HEAD -> master)
という表記がありますね。
これは、現在のブランチがmasterというブランチを指していることを表しています。
※Gitで最初にコミットすると、デフォルトでmasterブランチが作成されます。
現在のコミットとブランチ、HEADの関係は以下のようになります。
ブランチを作る
では、実際にブランチを作ってみましょう。
以下のコマンドを打って、sample_branchというブランチを作ってみましょう。
git logを見てみましょう。
上図のように、
(HEAD -> master, sample_branch)
となり、
masterの横にsample_branchという名前が増えました。これはブランチが追加されたことを示しています。
現在のコミットとブランチ、HEADの関係は以下のようになります。
今はHEADがmasterを指していますので、
sample_branchブランチ側に切り替えてみましょう。
これで、ブランチ側に切り替わったはずです。git logを見てみましょう。
(HEAD->sample_branch)
HEADがsample_branchを指していますね。これでブランチがmasterからsample_branchに切り替わりました。
現在のコミットとブランチ、HEADの関係は以下のようになります。
さて、この状態で、何かファイルに変更を加えて、コミットしてみましょう。
テキストファイルに以下を追記します。
$ git commit
git logを見てみましょう。すべてのbranchのログを見たいので”–branches”オプションを付けます。
上図のように表示されました。
masterブランチの上に、sample_branchの変更が来ています。
現在のコミットとブランチ、HEADの関係は以下のようになります。
この状態で、ブランチをmasterに戻してみましょう。
git logを見てみましょう。
上のように、HEADがmasterに切り替わりました。
(HEAD -> master)
もちろんファイルの中身もsample_branchで変更した内容が入っていないですね。
現在のコミットとブランチ、HEADの関係は以下のようになります。
マージする
では、sample_branchの変更が問題なく、masterに反映させてよいとなったとします。
そこで以下のコマンドを打ちましょう。
※この時、HEADは、master(マージされる側)にしておく必要があります。
ファイルを確認してみましょう。
sample_branchの内容が反映されていると思います。
git logを見てみましょう。
masterとsample_branchが同じコミット位置にいますね。
そして、HEADは、masterを指しています。
ファイルの中身も確認してみてください。sample_branchで追記した内容が反映されているはずです。
これで、sample_branchの変更内容がマスターにも反映されました。
現在のコミットとブランチ、HEADの関係は以下のようになります。
ブランチを削除する
sample_branchの修正は、master側にマージされましたので、sample_branchブランチを削除しておきます。
ブランチを削除するには、以下のコマンドを入力します。
git logを見てみましょう。
現在のコミットとブランチ、HEADの関係は以下のようになります。
最後に
さて、ここまで
ブランチの作成、マージのやり方を解説しました。
前回の解説と合わせると、コミット→ブランチ→マージなど、Gitの基本的な部分を解説してきました。
まだまだ紹介できていないGitの機能がありますので、これからも少しずつ解説していこうと思います。
少しでも皆さんの参考になれば幸いです。
それでは!!
スポンサーリンク