Git教程之Github,狐妖小红娘向,超易理解(六)——(Part4)pull操作与协同开发时冲突的解决

6.6 涂山红红从tuShan远程库拉取(pull)文件

先来看看pull之前,tuShan本地库中的文件的内容。
Git教程之Github,狐妖小红娘向,超易理解(六)——(Part4)pull操作与协同开发时冲突的解决
使用fetch命令chunAiTianPian.txt远程库拉取下来。fetch之后,只是把远程库中的文件下载下来,并没有去改本地工作区的这个文件。
Git教程之Github,狐妖小红娘向,超易理解(六)——(Part4)pull操作与协同开发时冲突的解决
下载下来的文件如何查看呢?使用git checkout先切到远程库的master分支,然后cat查看。
Git教程之Github,狐妖小红娘向,超易理解(六)——(Part4)pull操作与协同开发时冲突的解决
接下来我们就需要用我们之前学到的合并(merge)命令,进行合并,就可以了。(切记,此时我们要在tuShan本地库的master分支上,不在的话用git checkout命令切回)
Git教程之Github,狐妖小红娘向,超易理解(六)——(Part4)pull操作与协同开发时冲突的解决

总结:

  • pull = fetch + merge
  • git fetch [远程库地址别名] [远程分支名]
    • 注意:我们抓取(fetch)操作之后,只是把远程库中的文件下载下来,并没有去改本地工作区的这个文件。
  • git merge [远程库地址别名/远程分支名]
    • 切记,此时我们要在tuShan本地库的master分支上,不在的话用git checkout命令切回tuShan本地库的master分支,即git checkout master。

我们也可以直接用pull命令,但是上述fetch和merge的操作,可以避免冲突问题,更加安全严谨,如果是一些不会产生冲突的文件的话,直接用pull也是可以的。

  • git pull [远程库地址别名] [远程分支名]

6.7 协同开发时冲突的解决

  • 要点
  • 如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取这个最新版。
  • 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。
  • 类比
    • 债权人:老王
    • 债务人:小刘
    • 老王说:10天后归还。小刘接受,双方达成一致。
    • 老王媳妇说:5天后归还(没和老王沟通擅自决定)。小刘不能接受。老王媳妇需要找老王确认后再执行。
  • 相当于 “10天之后”是最新版,老王媳妇擅自说的“5天之后”不是在最新版基础上去约定,必须是和老王核实过“最新版”情况之后,才可以下结论,告诉小刘还款的时间。