git命令詳解( 三 )
此篇為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
將拉取下來的進行合併