【単価2,000円の講座をテキストにしてみました】 Gitの基本を学ぶ講座3 〜Gitブランチについて学ぼう!〜

本テキストは、Gitの基本を学ぶことができるテキストの講座3です。
Gitの基本を学ぶ講座1〜Gitの仕組みを理解しよう!〜
Gitの基本を学ぶ講座2 〜Gitの基本コマンドを覚えよう!〜
・Gitの基本を学ぶ講座3 〜Gitブランチについて学ぼう!〜
・Gitの基本を学ぶ講座4 〜実践で使えるGitの応用コマンドを学ぼう!〜


講座1は完全無料公開
講座2〜4については一部無料公開しています。

本来は、2,000円で開いていた講座の内容を公開しています。
より実践的でサポートがある状態で学びたい人は、connpassにて不定期にイベントをやっていますので、そちらでも学習することもできます。
ぜひ、ご参加ください。

本テキストをWindowsで実施する場合は、Gitbashをご使用ください。
Macをご使用の方はTerminalをご使用ください。

本講座は、Gitをコマンドで実行するやり方のみの紹介です。
SourceTreeやIDEなどでも操作できますが、Gitの基本を学ぶためコマンドで実行しています。

前回までのテキスト

本編

Gitのブランチについて学びましょう。

1. Gitのブランチって何?

ブランチとは、「」のことです。

Gitのブランチもこの「枝」のようなイメージを持ってもらうといいでしょう。

画像4


例えば、下記のように、機能Aの開発をしているチームと、機能Bの開発をしているチームが同じソースコードを更新していたら×のようにバグがたくさん起こる可能性があります。

画像1

その場合、下記のように、機能Aの開発を進めるソースコード機能Bの開発を進めるソースコードを別々で開発し、最後に合体させる方が、余計なトラブルを引き起こさずスムーズに開発ができます。

画像2

上記のように、元のソースコードが、ソースコードAソースコードBへ別れて成長する様は、まさに「枝(ブランチ)」と言うイメージです。

この場合は、ブランチAブランチBと言う感じで名前をつけてあげます。

Gitで開発すると言うことは、大きな植物を育てるイメージです。


2. GitFlowを理解しよう!

GitFlowとは、一般的なGitを使った開発の流れを示したものです。
いわゆるブランチの一般的な使い方とルールです。

画像3

上記のように、Master, Develop, Feature, Releaseなどのようなブランチがあります。

それぞれの役割を見ていきましょう。

    2.1 ブランチの役割

Masterブランチ
リポジトリ作成時に作られる最初のブランチです。
全てのブランチの大元を辿ると、このmasterブランチから派生しています。

上記の例でいうと、現在稼働しているサービスの状態で保持されいることが多いです。

Developブランチ
masterブランチから派生する次のブランチです。
 developという名だけあり、開発段階のソースコードを管理するときに使用されることが多いです。

上記の例でいうと、新機能を追加するソースコードは、このdevelopブランチで管理します。

Featureブランチ
developブランチからさらに派生する小さなブランチがfeatureブランチです。

例えば、ユーザー認証をするシステムを導入するとき、「ログイン機能を作る」「サインアップ機能を作る」などの細かいタスクに分かれます。
これを管理するのがfeatureブランチです。
名前の付け方は、feature/xxxxとつけることが多いです。

Releaseブランチ
リリース時にバージョン変更などをしたりするブランチ。
masterブランチから派生して、masterブランチにマージをします。

Hotfixブランチ
現在の稼働中のサービスで重大な障害が起きたときに修正をする対応をするブランチ。
masterブランチから派生して、masterブランチにマージをします。


「たくさん種類があってわからない」という人は、以下の3つだけ覚えておけば大丈夫です。

画像5

開発現場によっても、使い方は異なるので、プロジェクトリーダーの人に「GitFlowはどうなっていますか?」と聞いてみましょう!


3. ローカルブランチとリモートブランチ

ブランチはどこに存在するのか?」と言うと、今までもmasterと言う名前を見かけた通り、リポジトリに存在します。

リモートリポジトリにあるブランチを、「リモートブランチ」
ローカルリポジトリにあるブランチ
を、「ローカルブランチ」

と言います。

ここから先は

3,350字 / 5画像

¥ 190

この記事が気に入ったらサポートをしてみませんか?