雑多だが、一応まとめる。
- 変更不可完全追記式ストレージ
- スナップショット保存、差分管理はしない。差分は計算する。
- ロールバックやロールフォワードはしない。まるまるリストア。
- HEADが最新コミットを指すとは限らない。detached HEAD もある。
- ブランチラベルは容易に削除できる。ブランチの履歴は絶対に削除できない。
- 削除、改変、書き換えなどは「言葉のあや」
- “リモートブランチ”はローカルリポジトリにある。
- 「追跡ブランチ」は追跡するブランチか、追跡されるブランチかハッキリしない。
- 「リモート追跡ブランチ」は意味がハッキリしている。
- 追跡する側のブランチは、追跡専用ブランチと通常ブランチがある。通常ブランチの追跡する対象ブランチは「上流ブランチ」というのかも知れない。
- 早送りマージは(狭義の)マージはしてない。
- スカッシュマージも(狭義の)マージはしてない。
- push と pull は非対称である。
- グラフのフラグメントと単純フラグメント(単一ヘッド、単一境界のフラグメント)を考える。
- 単純フラグメントの転送とグラフティングがリモートとのやり取りのすべて。
- リベースは歴史(履歴)の改変はしてない。ヘッドコミットからの可視性は変わる。
- リベースは一時的パッチを使う。
- プルリクエスト〈マージリクエスト〉はホスティングサービスが提供するコミュニケーション機能。
- ハブサーバーのリポジトリにワーキングツリーは不要。
行為と物が混同するから、行為を表す名詞に次を使う。
- コミッティング〈committing〉 (コミット【名詞】ではない)
- マージング
- グラフティング〈grafting〉
- トラッキング
物を表す言葉は:
- コミット=コミットオブジェクト
- ブランチ
- ブランチラベル
- ブランチヘッド
- ブランチ履歴
- ブランチ固有履歴
- グラフのフラグメント
- 単純フラグメント(ヘッドノードが1つ、境界ノードが1つあるフラグメント)
カレント概念
- カレントコミット
- カレントブランチ
- カレントワーキングツリー(の状態)
グラフティングとトラッキング
- フラグメント選択
- フラグメント転送
- フラグメントをグラフにグラフティング
- ラベルの参照先更新〈移動〉
- トラッキング専用ブランチ
- トラックする側とトラックされる側
マージング
- 早送り〈ファストフォワード〉
- マージコミット
- スカッシュ
- リベース
意図・目的と手段を混同しない。