リモートリポジトリ
ここまでは自分の PC の中の話でした。今度はインターネット上のリポジトリとつなぎ、push・fetch・pull を驚かずに使えるようにします。
学習目標
- リモートを接続し、自分のコミットを上げられる
- fetch と pull の違いを説明できる
- 追跡ブランチと `-u` オプションが何かを理解する
リモートリポジトリはインターネットのどこか(多くは GitHub)にある同じリポジトリで、名前は慣例的に origin です。git remote add origin <URL> でつなぎ、git push で自分のコミットを上げ、git pull で他人のコミットを受け取ります。ローカルのやり方が変わるわけではありません。リモートは皆が集合場所として決めたもう1つの複製にすぎません。
git fetch と git pull の違いを知っているかどうかで大きく差が出ます。fetch はリモートの最新状態を取ってくるだけで、自分のブランチには触れません。pull は fetch した後すぐ自分のブランチに合流させます。何が上がっているか先に見たいなら、fetch してから git log origin/main で確認し、その後で合流させるほうが安全です。
git push -u origin main の -u は、ローカルブランチとリモートブランチを結び付けるオプションです。一度結び付ければ、次からは git push・git pull だけで済みます。さらに git pull --rebase を既定にすると、「Merge branch 'main'…」のような意味のないマージコミットが履歴に溜まりません。自分のコミットが取得した内容の上に載せ直され、履歴が一直線に保たれます。
このステップで覚えるコマンド
目で読むだけでなく、実際にターミナルで打ってみてください。手が覚えて初めて実務で出てきます。
git remote add origin <URL>- このリポジトリをリモートと接続し、名前を `origin` にします。
git push -u origin main- push しつつブランチを結び付けます。以降は `git push` だけで済みます。
git fetch origin- 自分のブランチはそのままに、リモートの最新状態だけ取得します。
git pull --rebase- 取得した内容の上に自分のコミットを載せ直し、履歴を一直線に保ちます。