リモートリポジトリ
ここまでは自分の PC の中の話でした。今度はインターネット上のとつなぎ、・・ を驚かずに使えるようにします。
学習目標
- を接続し、自分のを上げられる
- fetch と pull の違いを説明できる
- 追跡と
-uオプションが何かを理解する
リモートリポジトリはインターネットのどこか(多くは )にある同じリポジトリで、名前は慣例的に 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 を既定にすると、「 branch 'main'…」のような意味のないマージコミットが履歴に溜まりません。自分のコミットが取得した内容の上に載せ直され、履歴が一直線に保たれます。
やさしく理解する
リモートリポジトリはインターネット上にある共同の倉庫です。push は自分の箱を倉庫へ送り、fetch はどんな新しい箱が届いたかを開けずに確かめるだけで、pull はその箱を家に持ち帰って自分の部屋で開けます。
このステップで覚えるコマンド
目で読むだけでなく、実際にで打ってみてください。手が覚えて初めて実務で出てきます。
git remote add origin <URL>- このリポジトリをリモートと接続し、名前を
originにします。 git push -u origin main- push しつつブランチを結び付けます。以降は
git pushだけで済みます。 git fetch origin- 自分のブランチはそのままに、リモートの最新状態だけ取得します。
git pull --rebase- 取得した内容の上に自分のコミットを載せ直し、履歴を一直線に保ちます。
よくある失敗と直し方
誰かが先に push したせいで、git push が 'Updates were rejected' のようなメッセージとともに拒否される場合です。いきなり --force に頼らないでください。git pull --rebase で自分のコミットを相手のコミットの上に載せ、があれば解決して、もう一度 push します。
自分で記録する欄です。ここで採点はしません。
この段階を理解したものとして記録しますか?
まだ取り消せないので、本当に理解できたときだけ記録してください。
理解したものとして記録しました
自分で記録する欄です。ここで採点はしません。