clone fork 区别_fork和clone之间有什么区别?

clone fork 区别

最近有关《黑客新闻》的头条引起了轰动( 原始推文在此处 ):

Google forked Swift

标题Google分叉了Swift ,它既准确又令人困惑。 为什么引起这么大的骚动? 因为在自由和开源软件中,“ fork”一词具有两个含义。 让我们进一步深入研究。

叉子

在免费和开源软件中存在分叉项目的概念已有几十年了。 “派生”意味着获取项目的副本,将其重命名,然后围绕该副本启动一个新项目和社区。 那些分叉项目的人很少(如果有的话)再次为父项目做出贡献。 这相当于罗伯特·弗罗斯特(Robert Frost)诗的软件 代码库中有两条路径分叉,而我走的却少了一条……这一切都与众不同。

项目分支可能有很多原因。 也许该项目已经休整了一段时间,并且有人想复兴它。 可能已经收购了承担该项目的公司,并且社区担心新的母公司可能会关闭该项目。 也许社区内部存在分裂,一部分社区已决定对该项目采取不同的方向。 通常,项目分叉会伴随大量讨论,并可能还会引起社区冲突。 无论出于何种原因,项目分支都是复制项目,目的是围绕它创建一个新的独立社区。 尽管前叉确实需要进行一些技术工作,但这主要是一种社会行为。

在自由和开源软件的整个历史中,有很多分支。 一些较出名的是MariaDB的从分叉MySQLNextCloud从分叉OwnCloud詹金斯从分叉哈德森

克隆

在“过去的日子”中,我们当中那些想要在代码库中工作的人会启动我们的CVSSubversion,检出代码以在沙箱中创建工作副本。

然后git到达了现场( Mercurial也是如此,但是在本期中并没有直接涉及)。 作为分布式版本控制系统(又名DVCS ,您不再需要“检出”主存储库的工作副本。 相反,存储库的每个副本本身可以是某人的主要副本。 要在DVCS中工作,您仍然必须获取代码的副本,但是该复制的代码与原始代码一样有效,并且有可能成为原始代码。 因此,您必须克隆它,而不是对代码进行校验 。 就像在“孤儿布莱克”或任何其他出色的科幻电影中一样,该克隆与原始来源相同,并且有可能成为主要存储库,尽管这种情况很少发生(在FOSS中,如果不是在科幻电影中)。

如果您希望为使用git作为其版本控制系统的项目做出贡献,则需要为其创建一个副本。 例如,要贡献给Public_Speaking存储库,您首先要使用以下git命令创建一个克隆:



   
   
git clone https://github.com/vmbrasseur/Public_Speaking.git

这将创建存储库的本地克隆,您可以根据需要进行任何更改。 如果您希望将更改贡献回原始存储库,则必须发送拉取请求 。 除非原始存储库的维护者直接授予您对其的访问权限,否则,如果没有该存储库的克隆和对该存储库的拉取请求,就无法为该存储库做出贡献。

与分叉不同,克隆是技术操作 ,不需要社区参与或任何社会变革。

并发症

自由和开源软件从来没有像现在这样简单,因此自然而然地使整个过程变得复杂。

GitHub于2008年启动时,它选择了fork来代表git clone命令的动作。 当你在GitHub上fork一个项目,你实际上只是创造它,一个克隆副本上,您可以执行你的工作。 这是完全可能的,从这里你可以选择到餐桌的项目在原来的意义:创建一个单独的项目以及相关的社区,而不是简单地发送引入请求回原来的项目。 但是,几乎所有派生 GitHub项目的人都只打算创建个人工作副本,即clonefork这个单词的重载在自由和开源软件社区中引起了更多的混乱,最近造成了Google可能以Swift编程语言(本来意义上)分叉的恐惧(暗示它正在创建一种Swift语言)。新项目和独立项目),而不是实际执行的工作:克隆该项目,以便为项目做出贡献,就像任何优秀的自由和开源公民一样。

Chris Lattner - Swift at Google

原始克里斯·拉特纳Chris Lattner)鸣叫这里

因此您会看到,通常您的叉子是一个克隆,但有时它是一个叉子。 这完全取决于您是向原始社区(克隆)做出贡献,还是试图形成一个新的社区(分支)……或者如果您使用的是GitHub,在这种情况下,您的fork是克隆,反之亦然。

翻译自: https://opensource.com/article/17/12/fork-clone-difference

clone fork 区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值