背景
昨日gitの内部の仕組みを学習した。
git pullの時の解説がなく、何が行われているか疑問に思った。
復習
・git fetch の際に行われているのは、リモートのgitオブジェクト&リファレンスを「origin/〇〇」としてローカルに持ってくること。つまり、ローカルのリファレンスやブランチは変化しない。
・git merge の際に行われているのは、リファレンスの付け替え(commitオブジェクトの生成はない)。
git pullは何をしている?
答えは書いてあった。
pull = fetch + merge
つまり、下記を行っている。
- fetchでリモートのgitオブジェクト、リファレンスをローカルに持ってきた後、
- mergeでリファレンスを動かす(コミットオブジェクトは作成されない)
学び
- git pull時の動きが少しイメージできるようになった。
次のアクション
gitを動かしながらrebaseやmergeの様々なパターンを確認する。