此篇为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
将别人的修改拉取下来