feach同步 git_git fetch命令

曾犯过一个错误:

clone到本地的代码,平时只用master分支,所以只在master分支上更新本地的代码,之前搞不清本地库和github上的库的关系,不明白远程分支的含义;比如线上新建了一个分支”release_Aug_01”,我不知道如何把git的远程分支同步到本地的分支,只是发现在本地checkout 到某个远程分支提示我没有这个分支,我不知道通过git fetch origin获取远程分支,就只好在本地新建了和远程分支同名的分支,然后checkout到新建的分支,再把远程的分支merge到本地;当时这样做好像没出问题。不过这样做应该就是每次都需要通过git merge来更新远程代码

正确的做法是,在本地执行git fetch origin,命令把远程分支的更新同步到本地,这样本地就有远程的分支了,然后check到要开发的分支,就可以开发了,和在master上一样的

查了一些git fetch的资料:

git fetch 参考网址:http://git-scm.com/docs/git-fetch

git fectch常用的四种用法:(以下来源于https://ruby-china.org/topics/4768)

git fetch:

这一步执行了两个关键的操作:创建并更新本地远程分支;设定当前分支的FETCH_HEAD为远程服务器的master分支上

git fetch origin:

和git fetch一样,只不过手动指定了remote

git fetch origin branch1

设定当前分支的FETCH_HEAD为远程服务器的branch1分支,这个命令不会在本地创建本地远程分支,但是可以用来测试远程主机的远程分支branch1是否存在,如果存在返回0,失败就返回128错误码

git fetch origin branch1:branch2

首先执行fetch操作,使用远程branch1分支在本地创建branch2(但不会切换到该分支),如果本地不存在branch2分支就会自动创建一个新的branch2分支,如果本地存在branch2分支,并且是fast forward,则自动合并两个分支,否则,会阻止以上操作,

git fetch origin :branch2

等价于git fetch origin current_branch:branch2.

fetch的关键是FETCH_HEAD指的是,某个branch在服务器上的最新状态

每一个执行过fetch操作的项目都会存在一个FETCH_HEAD列表,这个列表保存在.git/FETCH_HEAD文件中,其中每一行对应于远程服务器的一个分支。当前分支指向的FETCH_HEDAD就是这个文件第一行对应的那个分支;所以你可以在当前分支查看FETCH_HEAD文件,就可以知道当前分支对应的远程分支了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值