我注意到许多GitHub帐户仅具有从其他帐户派生的存储库。此外,执行此操作的人员通常不会对分叉的存储库做出任何贡献。

我听说有人在收集邮票和贝壳,但是为什么有人要收集存储库呢?就个人而言,如果要对其进行一些更改,我只会派出一个存储库。

评论

他们希望确保项目所有者删除其存储库并消失后可以保持稳定的备份

仅仅是因为这就是GitHub中pull请求的工作方式(而且人们对分叉感到有点高兴,然后有时会忘记它,或者放弃他们的项目想法而忘记摆脱分叉)

据我了解,它们仅用作注释的代码“备份”,但当他们应该进行正确的fork(用于备份)时,他们忘记(或不知道)更新存储库不会影响“ forks”, “ Star”存储库知道何时进行“重新分叉”,换句话说,他们认为“ Fork”与“ Star”几乎是同一件事,并且不知道维护了过时的代码。

因为他们听说拥有Github足以在热门创业公司被雇用。

这是关于无理由分叉zbowling的危害的帖子.github.io / blog / 2011/11/25 / github

#1 楼

在我们的工作中,我们倾向于寻找技术原因,但我认为主要的原因不是技术原因。如果您查看GitHub帮助或其他GitHub教程,创建存储库是您“使用” GitHub的主要步骤之一。

当人们学习和评估GitHub时,几乎每个教程都将告诉他们在该学习过程中分叉一个仓库。由于GitHub的主要目的是贡献力量,因此许多学习标准教程的人都没有意识到,如果您只想要只读克隆,则不必先进行分叉。

评论


出于非技术原因:我多次单击“ fork”按钮,以查看是谁分叉了该回购协议,却发现我已经分叉了。哎呀!不知道其他人是否也这样做。

–gdw2
13年6月6日在21:27

@gdw:使您大叫:“哦,叉子!”

–本·杰克逊
13年6月7日,0:47

我记得当我第一次学习git和Github时,我做了一些分叉,只是因为指南和教程似乎建议将它作为在计算机上获得自己的代码副本的方式。

–rmac
13年6月7日在9:01

我们在工作中使用GitLab,所以我很清楚克隆和fork之间的区别。我也认为,如果您不想发出请求(合并到GitLab),则不需要分叉。

–cst1992
16年11月26日在6:30

@Jesse,这很好,但是在那种情况下通常是不必要的。一家公司可能会为他们依赖的代码这么做,以确保原始代码不会突然消失。如果您只想从源代码构建,则克隆会更简单。

–卡尔·比勒费尔德(Karl Bielefeldt)
17年8月4日在1:25

#2 楼

正如您在问题中提到的那样,人们在要更改代码时会分叉存储库,因为您
没有对原始存储库的写权限(除非您被所有者的协作者添加为协作者)存储库中。)

在派生存储库中,它们具有写访问权并且可以推送更改。他们甚至可以使用拉取请求将
返回原始存储库。

我认为人们分叉存储库但不更改存储库的原因很多:


他们可能会派生一个看起来很酷的存储库,只需派生它(因为它很容易(只需单击一次)),然后想要
以后进行更改(然后可能会忘记它/没有时间来做)这样做)
他们派生一个存储库进行更改,然后发现更改是不必要的,而忘记删除
自己的存储库
它们可能派生一个存储库,因为其中一个项目取决于另一个存储库(可能通过子模块),并且
它们希望完全控制作为依赖项的存储库(原始存储库的所有者可能会决定从github移至google代码等)。
它们可能只是忘记推送提交


评论


当您不使用Github时,您会沿袭传统路线,并创建项目的本地克隆副本,以便可以对其进行修改。在github上派生使您可以访问许多项目首选的拉取请求。如果您在另一个项目中,最终将创建补丁并将其发送以供审核。

–旧帐户
2013年6月6日16:45

设置远程跟踪分支是一个简单的一步过程。任何尝试为GitHub之外的git仓库做贡献的人都知道它可能很繁琐。另外,如果原始作者使用AFK,则可以按照开发图查找仍在积极开发的fork。希望它能使GitHub避免像SourceForge一样退化为废弃项目的荒地。

–伊文·普莱斯
2014年2月19日下午0:03

如果您分叉项目但不进行更改,该怎么办。这会视为违法吗?

–杰西
17年8月3日在19:44

@Jesse GitHub上的所有公共存储库都应具有开源许可证(即其服务条款),因此完全没有问题。尤其是当您不进行任何更改时。

– MarcDefiant
17-10-6在9:03

#3 楼

一个可能的原因:他们有依赖于那些项目的运行代码,并且它们的构建过程涉及从github提取依赖项。拥有货叉可以保护他们免遭破坏。对于不标记版本的项目,这是实现此目标的最简单方法。

评论


他们可以修正提交编号或应用发布版本的发布版本。

–罗马·科斯(M. Koss)
17-10-24在11:40

#4 楼

Github的重点是“社交编码”。

我个人是在以下情况下分叉存储库:


我想进行更改。将来,但没有更简便的方法将其保存在以后使用的设备上。
我想使用该存储库中的部分或全部代码作为我自己项目的起点。


现在我听说有人在收集邮票和贝壳,但是为什么有人要收集储存库?


为什么不呢?

分叉存储库中没有任何(我能想到的)错误会带来个人乐趣。老实说,我保留了一些在Github和其他地方看到的有趣的项目,仅仅是出于鼓舞人心的目的,部分原因是我是个极客。我知道我不必派遣项目来阅读代码,但是我实际上可能希望在将来进行编辑。

现在开始分叉。

评论


+1代表“为什么不?”部分。

– Llepwryd
2013年6月6日21:02

我在“为什么不呢?”上多加了2美分部分:我的习惯是在完成某项功能后,总是进行“ git push”操作;它具有Q.E.D.使我感到满意(写出远程名称和分支名称时我没有得到)。因此,只要我几乎没有机会对存储库进行更改,我都希望对其进行分叉,而不必稍后再更改默认的“原始”存储库。

– yoniLavi
13年6月12日在22:31

我认为“为什么不呢?”本节介绍“星标”的工作原理...

– TWiStErRob
16 Mar 7 '16 at 13:08

为什么不给它加一个星标以保存以备后用呢?

–花花公子
16-4-3在9:05

当一个项目很有趣时,我会用一颗星星。我同意其余的。

–罗马·科斯(M. Koss)
17-10-24在11:39

#5 楼

我派生了很多我可能想使用代码的仓库,或者这是我感兴趣的项目。当我想回来以后再看一下代码时,查找列在我下面的代码会更容易仓库。我不必去谷歌搜索,也不必四处寻找试图记住名字的确切含义,也可以思考“我又在哪里看到了关于foo的那个仓库?”如果这是我的回购协议之一,那么更容易想到这些东西。

评论


请注意,您可以通过在仓库中加注星标来获得相同的效果-无需为此付出代价。

–valiano
19年5月16日在10:05