git的远程分支和跟踪分支初探

1. 远程分支

1.1  特征

是对远程仓库的索引;

用户无法自由移动其HEAD,而只有在与服务端交互时才会移动——如pull,push,fetch,clone。

1.2 表示方法

(远程仓库名)/(分支名)这样的形式表示远程分支。比如我们想看看上次同 origin仓库通讯时master的样子,就应该查看 origin/master分支。

如origin/master区别与master。对于后者,是本地分支,使用者可以自由移动其HEAD,但对于后者则不行。

1.3 详解git clone

  1. 自动将远程仓库(包含了git.ourcompany.com及其它信息)命名为origin;
  2. 下载远程仓库的内容;
  3. 建立指向远程master指针,在本地命名为origin/master;
  4. 建立本地master分支。


1.4 当本地做过若干commit,且远程服务器也有人push过若干commit后

  1. 从图看出,origin/master并没有移动
  2. 远程与本地互不干扰(废话嘛……)
  3. 此时若进行push,会有类似[reject!!]的错误:因为origin/master 指针并不与服务器上的master  指针同步,也就是说我们——过时了!


1.4  如何push

  1. 将远程服务器的数据更新下来
  2. 合并分支,再push


1.5  多个远程服务器的情景





2. 跟踪分支

2.1  什么是跟踪分支

在Git中‘追踪分支’是用与联系本地分支和远程分支的. 如果你在’追踪分支'(Tracking Branches)上执行推送(push)或拉取(pull)时, 它会自动推送(push)或拉取(pull)到关联的远程分支上.
如果你经常要从远程仓库里拉取(pull)分支到本地,并且不想很麻烦的使用"git pull "这种格式; 那么就应当使用‘追踪分支'(Tracking Branches).
‘git clone‘命令会自动在本地建立一个'master'分支,它是'origin/master'的‘追踪分支’. 而'origin/master'就是被克隆(clone)仓库的'master'分支.

2.2  创建跟踪分支

git branch  --track  experimental  origin/experimental
git pull experimental
它会自动从‘origin'抓取(fetch)内容,再把远程的'origin/experimental'分支合并进(merge)本地的'experimental'分支.
当要把修改推送(push)到origin时, 它会将你本地的'experimental'分支中的修改推送到origin的‘experimental'分支里, 而无需指定它(origin).

2.3  疑问

  1. 如何查看本地分支分别跟踪到哪些远程分支?

说明

本文参考两篇博客进行整理,非常感谢原创作者:




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值