工作上常常會需要取得遠端 GitHub 的 branch 或將遠端的 branch 抓到本地端做修改,但在寫這篇文章之前,我都是使用 Fork 或 Source Tree 這類 GUI 做操作,沒有深入理解兩者的差別,想趁著這個機會了解以下這兩個東西的使用。
git fetch
的過程中發生了什麼事情?
將 origin 有但 local 沒有的版本記錄更新到本機上
什麼時候使用 git pull
?
想要遠端的 branch 和本地端的 branch 同步的時候。git pull
其實是 git fatch
+ git merge
的組合,簡單來說就是先將遠端的版本記錄複製到本機,再將遠端和本地關係為 upstream 的分支透過 fast-forward 的方式合併。
什麼是 fast-forward ?
合併分支時,如果 被合併進去的分支(master) 狀態沒有被更改過,這樣就可以說合併進去的分支(origin/master) 包含所有 master 的歷史記錄,這樣就只要將 master 分支的位置移動到 origin/master 的最新位置上就好,這樣的合併方式被稱為 fast-forward
合併。
Pull 下載更新
分支的合并
Git: 四種將分支與主線同步的方法