なぜ必要なのか

旅行サイトで友人が日ごとの訪問先を決めます。開発者はオフラインでも別々の実験を進めたいと考えています。ローカル履歴とGit対応ホスティングを優先し、既存のSVNツール維持を優先するならSubversionが合います。

どう解決するのか

新しい訪問先をローカルブランチにコミットしても、リモートにはまだありません。接続後にpushし、同僚がfetchします。両方の履歴を確認し、pushが拒否されたら履歴を調整します。

旅行の訪問先がローカル履歴から共有ブランチへ移動

旅行サイト · 手順の例

手元で記録、準備ができたら共有

01 / 開発者の端末

編集:博物館への訪問を追加

git commit ↓ ローカルに記録

main · 元の日程

museum-stop
新コミット:博物館への訪問

ローカルコミットはオフラインでも可能
02 / git push →接続 + 権限

共有リポジトリ

push前:新しい訪問先なし

push成功後
museum-stop

03 / git fetch ↓
同僚がブランチを取得

commit ≠ push。拒否されたら履歴を調整します。ホスティングとレビューは別の選択です。

どんな考え方なのか

Gitは分散バージョン管理です。commitはローカルに記録し、pushは別のリポジトリと共有します。GitHubなどのホスティングはGitに協業機能を加えます。競合の解決には判断が必要です。

出典