まずはいつもどおり用語の整理から。当たり前だけどGitとGithubは全然違う。
ブランチの種類
Gitでは必ずどこかのブランチ上で作業を行う。
- 統合ブランチ:いつでもリリース可能な状態のブランチ。そのため中途半端な状態で統合ブランチにコミットは行わない。通常はmasterブランチが該当する。
- トピックブランチ:バグ修正や機能追加時に行う。機能追加時は追加する機能単位でトピックブランチを分岐させる。
- 作業ブランチ:現在のブランチ。カレントブランチとも。
- リモートブランチ:ローカルリポジトリ内のリモートリポジトリのブランチ。ユーザはリモートブランチをカレントブランチにできない。origin/<ブランチ名>のように表示される。
HEAD関連
- HEAD:カレントブランチの最新のコミット。@はHEADのエイリアス。
- HEAD^:最新のコミットの1つ前のコミット。@^やHEAD~も同じ意味。
- HEAD~{n} :n個前のコミット
ワーキングツリー
- ワーキングツリー(ワークツリー):git管理下のディレクトリのこと。
- インデックス (ステージングエリア):ワークツリーとリポジトリの中間領域(一時領域)。ワーキングツリー内のコミット対象のファイルを保存する。 インデックスが存在することにより、ワークツリー内からコミット対象となるファイルを選択することが可能となる。
ファイル変数〜add〜commitの概説
- ファイル編集:ワークツリー内が変更される。
- add:インデックスにコミット対象のファイルが登録される。
- commit:HEADが1つ前にすすむ