本文区分了三个比较容易混淆的分支
远程分支
远程分支指的是Github或者Gitlab这种基于git做版本管理的远程仓库中的项目的分支。
远程跟踪分支
《progit》中提出的概念,虽然叫远程跟踪,但实际在本地。当使用 git fetch命令时,git比较远程仓库和本地仓库的差异,并且将远程仓库的分支拉取下来,保存为形如origin/master的本地只读分支(这就是远程跟踪分支)。所谓只读,就是只起到标识最后一次通信时远程仓库的分支情况(相当于在本地的拷贝上标识),这些跟踪分支的只读性体现在他们并不能修改和产生新的提交(因为只用作标识远程的情况)。
跟踪分支
跟踪分支和远程跟踪分支一起使用,远程跟踪分支才能被最大化利用。因为远程跟踪分支只是本地只读分支,而fetch只是更新远程跟踪分支,所以要把最新一次通信后远程的更改和本地的分支合并,就必须配合merge命令,例如将远程分支上master最新的更改合并到本地master的流程为:
1 | 先fetch,将更新同步到本地远程跟踪分支origin/master |
跟踪分支从远程跟踪分支上创建而出,由于git的数据模型近似于链表,创建新分支相当于创建新指针,所以基于远程跟踪分支创建跟踪分支性价比很高,并不会增加额外的空间,只是在origin/test当前指向的提交上再创建一根指针,且该分支是可写的(因为就是纯粹的可读写本地分支)。
1 | 创建方法为 |
progit
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !