ブランチとタグ

Gitにおけるブランチ

初期状態のGitリポジトリでは「master」という名前のブランチが用意されます。

Gitの場合、タグと同様にブランチも、ある時点の変更履歴の位置を指したものになります。

タグとの違いは、コミットによって新たな変更履歴を追加すると、ブランチの位置も新しい変更履歴に追従して移動。

タグは一度作成すると、参照している変更履歴から移動することはありません。

Gitにおけるブランチの動作

初期状態ではmasterというブランチで作業。masterブランチは最新の変更履歴Bを指す。

f:id:mkyosuke:20191219113015p:plain

コミットを行うと、新しい変更履歴Cが追加。

masterブランチの位置もCの変更履歴を指す。

f:id:mkyosuke:20191219113231p:plain

新しくdevelopブランチを作成。masterと同じ変更履歴Cを指す。

f:id:mkyosuke:20191219113736p:plain

次にmasterブランチでコミットすると、変更履歴Dが追加。

masterブランチの位置だけが移動。

f:id:mkyosuke:20191219114042p:plain

同様にdevelopブランチでコミット。masterブランチとは異なる変更履歴Eが追加。developブランチの位置も移動します。

f:id:mkyosuke:20191219114440p:plain

このように、コミットするたびに変更履歴追加され、作業しているブランチのみが追従して移動していきます。

ちなみに、現在作業しているブランチはHEADという特殊なブランチで表す。

HEADブランチは、変更履歴ではなく、特定のブランチを指す。

(例)masterブランチで作業している場合

HEADブランチはmasterを指す。

f:id:mkyosuke:20191219114937p:plain

次にdevelopブランチに切り替える

HEADブランチはdevelopを指す。

f:id:mkyosuke:20191219115210p:plain