Fresopiya
場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。

まずはとにかく自由を目指すエンジニアのブログです。
「哲学」と「プログラミング」と「政治経済」、「ブログ」がメインになるかと。
Git

【Git】ブランチとは?その仕組みと、ブランチの切り方、編集、マージまで。

どうも、とがみんです。

この記事では、Gitにおけるbranch(ブランチ)とは何か?ということと、

SourceTreeとGitHubを利用した、branchの切り方、編集marge(マージ)の仕方について紹介していきます。

branch(ブランチ)とは

「branch(ブランチ)」とは、プロジェクト本体に影響を与えずに、複数人が同時並行で開発を行えるようにする機能のことです。

この機能の仕組みについて説明していきます。

まず、プロジェクトを作成し、初めてcommitした時に、プロジェクトの本流のブランチであるmasterブランチが作成されます。

下図でいう「緑」のブランチです。

>引用:ブランチとは|サルでもわかるGit入門

そして、上図では、新たにブランチを作成する(ブランチを切る)と、切った時点におけるmasterと同じ状態のデータが生成されます。

上図の「紫」「青」「ピンク」が新しく作成されたブランチです。

それぞれのブランチで、ファイルを変更しても、本流の「緑」のブランチや、他のブランチには全く影響を与えません。

なので、ブランチを切ることによって、複数人が同時に開発を進めることができます。

それぞれのブランチで異なる機能を開発し、エラーなく動作することが確認できたら、本流のブランチにmargeし、1つのブランチにまとめ直すこともできます。

上図でもわかるように、margeすることで、本流の「緑」のブランチにも反映されていっていることがわかります。

ブランチの切り方、編集とマージまでの方法

masterブランチから、developブランチを作成し、編集後、masterブランチにmargeするという操作を、実際にSourceTreeを用て行ってみます。

SourceTreeのBrunchを選択し、New Brunch「develop」と入力し、Create Brunchボタンを押します。

Checkout new branchにチェックを入れた場合、今いるブランチから、新しく作ったブランチに切り替わります。

developブランチ作成後、以下のように、masterと同じ状態のdevelopブランチが作成され、masterブランチから、developブランチに切り替わっていることがわかります。

現在、gitTest.htmlファイルの中身は以下のようになっており、developブランチmasterブランチが同じ状態です。

これを以下のように編集して、developブランチ上でcommitします。

Historyをみて見ると、developが最新の状態になっています。

ここで、masterをクリックし、 ブランチをmasterに切りかえた後、gitTest.htmlファイルの中身を確認して見ると、変更内容が反映されていないことが確かめられます。

次に、developブランチの内容をmasterブランチmargeし、変更を反映させます。

margeブランチにいる状態で、以下のmargeボタンを押し、margeさせたいところを選択し、OKボタンを押します。

すると、以下のようにmasterdevelopと同じ状態になりました。

margeブランチにチェックアウトした状態で、gitTest.htmlの中身を見てみると、変更が反映されていることが確認できます。

最後に、変更内容をリモートリポジトリのgitTest/masterに反映させます。

画面左上のPushボタンを押し、変更を反映させたいブランチにチェックを入れ、OKボタンを押します。

今回は、masterdevelopの両方にチェックを入れ、それらに変更を反映させます。

すると、リモートリポジトリ上のブランチとローカルリポジトリのブランチが全て同じ状態になりました。

GitHub上で確認して見ると、変更が反映されていることが確認できました。

また左上のBranch:masterのボタンから、ブランチを切り替えて確認することができます。

まとめ

ブランチとは何か、その仕組みと、実際にブランチを切って編集し、margeして変更を反映させる方法について説明しました。

何か不明点、疑問点等あればご指摘いただけると嬉しいです。

参考文献

>ブランチとは|サルでもわかるGit入門