此篇為git命令的第三篇
目錄
Git Pull
在上一篇的結尾我們已經知道了如何用 git fetch
獲取遠程的數據, 現在我們學習如何將這些變化更新到我們的工作當中。
其實有很多方法的 —— 當遠程分支中有新的提交時,你可以像合並本地分支那樣來合並遠程分支。也就是說就是你可以執行以下命令:
git cherry-pick o/master
git rebase o/master
git merge o/master
實際上,由於先抓取更新再合並到本地分支這個流程很常用,因此 Git 提供了一個專門的命令來完成這兩個操作。它就是git pull
。
我們先來看看 fetch
、merge
依次執行的效果
執行:git fetch
執行:git merge o/master
我們用 fetch
下載了 C3
, 然后通過 git merge o/master
合並了這一提交記錄。現在我們的 master
分支包含了遠程倉庫中的更新(在本例中遠程倉庫名為 origin
)
如果使用 git pull
同樣的結果!這清楚地說明了 git pull
就是 git fetch 和 git merge <just-fetched-branch> 的縮寫!
模擬團隊合作
這里有一件棘手的事 —— 為了接下來的課程, 我們需要先教你如何制造遠程倉庫的變更。
這意味着,我們需要“假裝”你的同事、朋友、合作伙伴更新了遠程倉庫,有可能是某個特定的分支,或是幾個提交記錄。
為了做到這點,我們引入一個自造命令 git fakeTeamwork
!它的名稱已經說明了一切,先看演示..(注意:自造命令在實際中並不能使用)
fakeTeamwork
默認操作就是在遠程倉庫的 master 分支上做一次提交。
執行:git fakeTeamwork
你還可以指定提交的分支或是數量,只需要在命令后加上它們就可以了
示例:
執行:git fakeTeamwork foo3
通過一個命令,我們就模擬隊友推送了 3 個提交記錄到遠程倉庫的 foo 分支。
下面開始我們的團隊模擬練習
git clone
(執行完之后我們可以看到倉庫已經克隆下來了)
git fakeTeamwork master 2
(使用自定義命令模擬其他人的兩次提交)
git commit
模擬你自己的修改並進行一次提交
git fetch
將別人的修改拉取下來
git merge
將拉取下來的進行合並
好啦現在你的本地已經同步了線上的修改!!!
這篇就到這里了,因為這個團隊協作比較需要理解