08 Git中本地工作与远程仓库的同步

Posted 迂者-贺利坚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08 Git中本地工作与远程仓库的同步相关的知识,希望对你有一定的参考价值。

本节视频:

本节的目标对应日常工作的常态,将应对第一次提交中不会遇到的各种“意外”。这些意外是多人合作中的正常现象,需要掌握其正确的处理方式。
  与上一节相比,本节的新内容是从远程仓库拉取(pull)的操作和处理冲突的方法。 

(1)从远程仓库中拉取代码,需要用命令

git pull
  从远程仓库中拉取代码后,本地目录中的代码将与远程仓库一致。
  之所以需要拉取环节,是因为在多人开发的条件下,在你开始工作之前,团队其他成员可能更新过文件,文件也可能通过其他途径更新。项目开发需要基于文件最新的状态开展,所以需要拉取(pull)远程服务器中的最新更新。
  下面是拉取的示例:

(2)本地工作及向本地仓库的提交

在本地的开发工作实质上就是在编辑文件,按照项目开发的要求完成。需要将阶段性的工作成果经过添加(add)和提交(commit),在本地仓库中记录最新版本。用到的命令有:
git add .
git commit -m 'message'

(3)推送到远程仓库

推送到远程仓库直接用命令:
git push
  在通常情况下,提交总是顺利成功(团队成员工作组织良好,在同一段时间内对同一文件修改很少时)。但是,若团队其他成员在你推送之前推送了新版本,冲突就可能发生(仅是修改了同一文件时,分别修改了不同文件不会造成冲突)。发生冲突是正常现象,需要解决冲突(确定文件的唯一版本)后再提交。
  下面是发生冲突时的提示:

(4)解决冲突(需要时)

用下面的命令把远程仓库中的最新版本拉取到本地:
git pull origin master

  从上图中可以看到,Git会标识出所有发生冲突的文件。下面是一个发生冲突的文档示例:两个箭头指向同一文档中两个不同来源的修改,需要人工确认,形成最终的版本。

  待解决冲突后,再按顺序添加到暂存区、提交到本地仓库、推送至远程仓库。
  在处理过程中,可以用下面的命令查看状态和查看文件的差异:
git status
git diff


  提示:在向远程仓库推送时,可以“人为制造”出冲突来。例如,在pull文件后,在网页端修改某一个文件,并在本地也修改同一文件——这样必然出现冲突,从而创造出体验冲突的机会。

<上一讲>  <教程目录>   <下一讲>

以上是关于08 Git中本地工作与远程仓库的同步的主要内容,如果未能解决你的问题,请参考以下文章

08 Git中本地工作与远程仓库的同步

Git本地库管理远程库(GitHub)——push, clone, pull操作

使用git将本地仓库同步到github远程仓库

[git] git拉取远程仓库,同步远程分支,解决冲突

git 本地仓库与远程仓库的同步操作流程

git 本地仓库与远程仓库的同步操作流程