Git Remotes: pull and push
git pull
我們已經知道如何利用 git fetch 從 remote 抓取 commit,讓我們來看一下如何將這些 commit 更新到我們的檔案!
只要在你的 local 有 fetch 到新的 commit,便有很多方法可以做到這件事情,你可以把它們視為在其它 branch 上面的一般的 commit,這表示你可以執行像這樣子的指令:
- git cherry-pick o/main
- git rebase o/main
- git merge o/main
- 等等‧‧‧
事實上,一次下載 (fetch) remote 的更新並且合併(merge) 這些更新在 git 裡面是很常見的事情!這個命令叫作 git pull。
讓我們來看循序執行一個 fetch 和一個 merge 的樣子:
輸入指令:
git fetch
git merge o/main
我們利用 fetch 下載了 C3 並且利用 git merge o/main 來更新資料,現在我們的 main branch 跟 remote 同步了(在這個例子中,remote repository 叫作 origin)。
如果用 git pull 會發生什麼事情?
輸入指令:
git pull
很明顯地,git pull 其實就是 git fetch 跟 git merge 的循序執行的結果,而且 merge 的 branch 就是 fetch 所更新的 branch。
Git Push
ok,現在我已經從 remote 下載了一些更新,並且把它們 merge 到我的 local 上面的 branch,這聽起來實在太讚了...,但是我要如何分享我所做的更新給其它人呢?
git push 負責上傳你的 commit 到特定 remote 上面並且做出相對應的更新,只要做完了 git push,所有你的朋友都可以從 remote 上面下載你所送出去的 commit
你可以把 git push 當作是一個"發佈"你的工作進度的指令, 這裡我們有了一些 remote 所沒有的 commit:
輸入指令:
git push
remote 收到了 commit C2,同時在 remote 上的 main branch 也一起更新並且指向 C2,同時我們自己的 o/main 也一併更新了!