分支和分叉

广告位招租
扫码页面底部二维码联系

在git操作中,会出现分支和分叉两种情况【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】。分支是比较正常的,几乎所有的项目都会有转载请注明出处:www.tangshuang.net【本文受版权保护】分支,分叉则出现的较少,一旦出现分叉,就未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net意味着问题的出现,需要不同开发者坐在一起【作者:唐霜】转载请注明出处:www.tangshuang.net商讨应该怎么解决分叉问题。

【原创内容,转载请注明出处】转载请注明出处:www.tangshua转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.netng.net

分支(branch)

简单的说,分支就是从原有的分支(主分支)【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。中克隆一支出来,并独立的发展。

原创内容,盗版必究。未经授权,禁止复制转载。【本文受版权保护】【本文首发于唐霜的博客】
1 --- 2 --- 3 ---- 4       --- ①
   \
     5 -- 6  -- 7          --- ②

如上图中,①是主分支,在1的位置项目被创转载请注明出处:www.tangshuang.net【版权所有,侵权必究】建,在2的位置,②分支被创建,它源于①分未经授权,禁止复制转载。【未经授权禁止转载】支,因此,在5处代码和2是一模一样的。但【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】是有人继续在①分支上工作,修改代码,有人【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。在②分支上工作,修改代码,两个分支互不影【原创内容,转载请注明出处】原创内容,盗版必究。响。但是毕竟①是主分支,将来产品是要在①本文作者:唐霜,转载请注明出处。原创内容,盗版必究。上build后发布的,所以有一天,②分支【版权所有,侵权必究】【原创不易,请尊重版权】的开发结束了,被合并的①分支上。

【版权所有】唐霜 www.tangshu【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.netang.net【转载请注明来源】【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshu未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。ang.net
1 --- 2 --- 3 ---- 4 -- 8---10 ---11
   \                   /
     5 -- 6  -- 7 -- 9

在②分支开发到9的位置结束后,合并到10【本文受版权保护】【版权所有】唐霜 www.tangshuang.net的位置,这个时候10的位置就拥有了之前①原创内容,盗版必究。转载请注明出处:www.tangshuang.net②两个分支的所有修改过的代码。

本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。ang.net转载请注明出处:www.tangshua【原创不易,请尊重版权】【本文首发于唐霜的博客】ng.net【访问 www.tangshuang.n【版权所有】唐霜 www.tangshuang.net【转载请注明来源】et 获取更多精彩内容】

当然,在合并代码的过程中,可能存在一些冲转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。突,比如在4的位置a.java被修改了,本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】而在7的位置a.java也被修改了,这个转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】时候就需要在合并分支的时候,检查同时修改【未经授权禁止转载】未经授权,禁止复制转载。的文件,把有用的代码都保存下来,把无用的【版权所有,侵权必究】【原创不易,请尊重版权】代码去除掉。

著作权归作者所有,禁止商业用途转载。【作者:唐霜】【访问 www.tangshuang.n未经授权,禁止复制转载。【转载请注明来源】et 获取更多精彩内容】转载请注明出处:www.tangshua【版权所有】唐霜 www.tangshuang.net【转载请注明来源】ng.net

分叉(branch diverged)

分叉更多的要涉及一个时间概念,分叉问题,本文作者:唐霜,转载请注明出处。原创内容,盗版必究。实际上就是代码在同一分支上出现了时间错位著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。的提交,这种现象有点类似平行空间,及同一【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。个分支在不同的开发者手里不一样。这在开发【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.net中是常见的,因为有些管理上或习惯上的原因转载请注明出处:www.tangshuang.net【关注微信公众号:wwwtangshuangnet】,在提交代码时确实很容易出现提交时间错位未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net的情况。

【转载请注明来源】【版权所有】唐霜 www.tangshu原创内容,盗版必究。【原创内容,转载请注明出处】ang.net【关注微信公众号:wwwtangshua【本文受版权保护】【版权所有】唐霜 www.tangshuang.netngnet】转载请注明出处:www.tangshua本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】ng.net
①  clone     commit&push                        commit&push
     1 ----------- 2 ---------------- |3| ----------- 4 -------------
②  clone                         commit&push

在上图中,同一个分支,被①和②两位开发者【本文受版权保护】未经授权,禁止复制转载。克隆后分别进行开发。①在2的位置进行了提【本文首发于唐霜的博客】【关注微信公众号:wwwtangshuangnet】交,②在3的位置提交后想要push,这个【作者:唐霜】【原创不易,请尊重版权】时候就会发现无法push,git会提示需【本文首发于唐霜的博客】【本文受版权保护】要更新本地代码。这个时候就麻烦了,因为更【访问 www.tangshuang.net 获取更多精彩内容】转载请注明出处:www.tangshuang.net新本地代码会发现可能本地代码已经修改过了【未经授权禁止转载】未经授权,禁止复制转载。,无法更新,唯一的解决办法是先删除掉本地原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】文件,再取出分支上的最新代码。可是这个时【本文受版权保护】【关注微信公众号:wwwtangshuangnet】候取出的,是2处①提交的代码,而自己的代【关注微信公众号:wwwtangshuangnet】本文版权归作者所有,未经授权不得转载。码只能丢失。这是②不愿意看到的,他会有一原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】种蛋蛋的忧伤。

【本文受版权保护】【作者:唐霜】转载请注明出处:www.tangshua著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】ng.net

如果②不愿意删除自己的代码,同时,假如②本文版权归作者所有,未经授权不得转载。【转载请注明来源】是一个大牛,写的代码会有很多人用,那么分本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。支很有可能出现分叉的情况,甚至②的分支会转载请注明出处:www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】被其他人克隆,被使用更多。

【原创不易,请尊重版权】【关注微信公众号:wwwtangshua【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.netngnet】【访问 www.tangshuang.n著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。et 获取更多精彩内容】著作权归作者所有,禁止商业用途转载。

分叉是一个很有意思的现象,它和上面的分支【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。有着非常大的区别,分叉是靠git本身难以本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。解决的,因为git不可能保存同一分支的不本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。同提交,你在写代码的时候,不可能同时看到【关注微信公众号:wwwtangshuangnet】【未经授权禁止转载】①和②的不同代码。因此,只能靠人为因素来本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。解决分叉问题。一般的解决方案:

原创内容,盗版必究。未经授权,禁止复制转载。【关注微信公众号:wwwtangshua【关注微信公众号:wwwtangshuangnet】【访问 www.tangshuang.net 获取更多精彩内容】ngnet】【原创不易,请尊重版权】
  • 像上面说的,②删除本地文件,pull之后【本文首发于唐霜的博客】【作者:唐霜】凭借记忆修改代码后再提交
  • 【原创内容,转载请注明出处】【原创不易,请尊重版权】
  • ②建立自己的独立分支,通过上面讲的分支的本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】合并方法合并代码(下面还有其他有趣的讨论本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。
  • 【版权所有,侵权必究】本文作者:唐霜,转载请注明出处。【转载请注明来源】【版权所有,侵权必究】
  • ②通过召开会议,强行要求①将提交退回到1原创内容,盗版必究。【访问 www.tangshuang.net 获取更多精彩内容】的位置,自己提交代码后①再重新提交,那么本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。①在2和4处的提交也会丢失(不过本地代码【作者:唐霜】【转载请注明来源】已经修改过了,还有保存)
  • 【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。ang.net

分叉情况在比特币区块链中发生过多次。区块本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.net链实际上就是一个分支,它也可能被创建新的【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net分支(彩币),但是绝对不允许出现分叉。假原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net如同一笔交易,在挖矿登记时,不同的矿场登本文版权归作者所有,未经授权不得转载。【本文受版权保护】记的信息不同,产生了不同的区块,而后续的转载请注明出处:www.tangshuang.net【未经授权禁止转载】挖矿继续跟踪自己认为是合法的区块继续挖矿【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。,就会导致交易账单混乱。因此,一旦比特币【关注微信公众号:wwwtangshuangnet】转载请注明出处:www.tangshuang.net区块链出现分叉,必须通过比特币会议商讨解【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。决,否则会给整个比特币生态带来灾难。

本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshua【转载请注明来源】著作权归作者所有,禁止商业用途转载。ng.net

在代码分叉的时候,也可能出现这个情况,两本文作者:唐霜,转载请注明出处。【作者:唐霜】位不同的大牛各自克隆了同一个分支,进行修【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。改,而他们的追随者又在各自不同的代码上进【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net行新功能的添加,这就会导致同一分支最后可【转载请注明来源】转载请注明出处:www.tangshuang.net能得到两个完全不同的代码集合。不过git【未经授权禁止转载】【本文首发于唐霜的博客】解决不了的,人可以灵活的解决,当一个分叉【本文受版权保护】原创内容,盗版必究。足够强大时,项目可能脱离原来的分支,自己【本文首发于唐霜的博客】【关注微信公众号:wwwtangshuangnet】成为一个独立的项目,也就是“衍生版”,然【本文受版权保护】未经授权,禁止复制转载。后得到一个新的(主)分支,其他的追随者在【本文受版权保护】【版权所有】唐霜 www.tangshuang.net这个分支上继续发展。

转载请注明出处:www.tangshua原创内容,盗版必究。未经授权,禁止复制转载。ng.net【作者:唐霜】【转载请注明来源】

2016-06-07 9607

为价值买单,打赏一杯咖啡

本文价值96.07RMB