2018/10/12
実際の開発ではmasterブランチで作業を進めるということはありません。
追加する機能ごとにブランチを切って作業を進めます。
つまりGitを利用するにあたってブランチは非常に重要です。
今回はブランチについてのエントリーです。
ブランチについて
まずブランチとは、あるコミット履歴位置からブランチ(枝分かれ)させて、他のブランチに影響を与えない仕組みです。
そのブランチですが3種類あります。
1)リモートブランチ・・・リモートリポジトリで共有されているブランチ
2)追跡ブランチ・・・ リモートブランチの状態を監視するためのブランチ
3)作業(ローカル)ブランチ・・・自分専用の作業用ローカルブランチ
一番最初に自動的に作成されるブランチをmaster ブランチといいます
masterブランチは、最新のメインバージョンを管理する役割があります。
そのため何か作業が必要なときは、直接masterブランチ上で作業するのではなくブランチを切って作業をします。
チュートリアル:作業・追跡・リモートブランチの作成
今回のチュートリアルでは実際に作業ブランチ・追跡ブランチ・リモートブランチを作成してブランチの概念ついて理解していきます。
シナリオ
【1】プルを実行(※新規の場合はクローン)
【2】作業用ブランチを作成
【3】作業 ⇒ コミット
【4】追跡ブランチ/リモートブランチの作成
【1】プルを実行(※新規の場合はクローン)
念のためリモートリポジトリからローカルへプルします。
新規にリポジトリを作成した場合はクローンをします。
【2】作業用ブランチを作成
このローカル上のmasterを元に、作業用のブランチを作成します。
「dev1」という名前の作業用ブランチを作っています。
「ブランチを作成」をクリックすると、指定したコミット位置にブランチ名が設定されます。
コミットしてデータに差異が生じることで枝分かれした樹形図として表示されます。
【3】作業 ⇒ コミット
「dev1」というブランチ上で作業をしてコミットします。
dev1ブランチ上の樹形図では枝分かれしません。
プルリクでマージして作業用masterブランチにチェックアウトしてプルすると樹形図で枝分かれします。
【4】 追跡ブランチ/リモートブランの作成
メニューの「プッシュ」をクリックします。
1.div1ブランチは追跡ブランチでないので、ローカルリポジトリにしか存在しません。
(※リモートブランチが空欄になっています)
2.ローカルブランチ「dev1」を「対象」としてチェックします。
自動的にリモートブランチにブランチ名がセットされて追跡ブランチとして設定されます。
このまま実行するとリモートリポジトリ上に「dev1」ブランチが作成されます。
また、作業ブランチdev1が追跡ブランチdev1にマージされます。
次にメニューの「プッシュ」をクリックすると「dev1」追跡ブランチから「dev1」リモートブランチにプッシュされます。
実作業ではこのあとプルリクでmasterブランチにマージし、div1のブランチを削除して作業完了になります。
dev1のブランチを削除してmasterにチェックアウトするとdev1で行った作業は全部消えます。
リモートmasterブランチからプルすると作業用masterブランチも最新のデータになります。
ブランチについては以上です。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。