Git / git clone 、git pull 和 git fetch

一、git clone

Git 的 clone 命令的工作如下:

1、自动将远程主机命名为 origin,拉取它的所有数据。

2、创建一个指向它的 master 分支的指针,并且在本地将其命名为 origin/master。

3、创建一个与 origin 的 master 分支在指向同一个地方的本地 master 分支。

 

二、git fetch

1、本地有提交,远程也有别人的推送

远程库有人推送,提交了 C0 和 C1:

 本地提交了 D0 和 D1:

只要你不与 origin 服务器连接,你的 origin/master 指针就不会移动。

 2、同步

如果要同步远程库到你的工作,运行 git fetch origin 命令。

$ git fetch origin

这个命令功能:

(1)查找 “origin” 是哪一个服务器,从中抓取本地没有的数据;

(2)更新本地数据库,移动 origin/master 指针指向新的、更新后的位置。

要特别注意的一点是 fetch 抓取到新的远程跟踪分支时,本地的工作区(workspace)不会自动生成一份可编辑的副本,抓取结果是直接送到版本库(Repository)中。如下图:

 

打个比方,在远程库 origin 新建了一个分支 dev,git fetch 后本地不会生成一个新的分支 dev(可用 git branch 查看),只有一个不可以修改的 origin/dev 指针。

3、在 origin/master 后继续工作

如果想要在 origin/master 分支上工作,可以新建分支 test 并将其建立在远程跟踪分支之上:

$ git checkout -b test(本地分支) origin/master(远程分支)

这会给你新建一个用于工作的本地分支 test,并且起点位于 origin/master。

4、合并

    如果想把拉取的结果合并到本地分支,需要手动合并。使用如下命令:

$ git chekout master
$ git merge origin/master

然而,看到上面的合并结果会想到命令 git pull 。在大多数情况下它的含义是一个 git fetch 紧接着一个 git merge 命令。即 git pull 是 git fetch 和 git merge 的两步的和。

但是由于 git pull 的使用经常令人困惑,所以通常单独显式地使用 fetch 与 merge 命令会更好一些。
 

(SAW:Game Over!)

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值