我一直听到有人说他们在Git中分叉代码。Git“fork”听起来很可疑,就像Git“clone”加上放弃未来合并的心理意愿(毫无意义)。Git中没有fork命令,对吧?
GitHub通过将通信钉在分叉上,让分叉变得更加真实。也就是说,你按下分叉按钮,然后,当你按下拉请求按钮时,系统足够智能,可以给所有者发送电子邮件。因此,这有点像是围绕存储库所有权和权限跳舞。
是/否?对GitHub向这个方向扩展Git有什么担忧吗?或者有传言说Git吸收了这个功能?
我一直听到有人说他们在Git中分叉代码。Git“fork”听起来很可疑,就像Git“clone”加上放弃未来合并的心理意愿(毫无意义)。Git中没有fork命令,对吧?
GitHub通过将通信钉在分叉上,让分叉变得更加真实。也就是说,你按下分叉按钮,然后,当你按下拉请求按钮时,系统足够智能,可以给所有者发送电子邮件。因此,这有点像是围绕存储库所有权和权限跳舞。
是/否?对GitHub向这个方向扩展Git有什么担忧吗?或者有传言说Git吸收了这个功能?
当前回答
简单地说,
当你说你正在分叉一个存储库时,你基本上是在GitHub帐户中的GitHub ID下创建一个原始存储库的副本。
and
当你说要克隆一个存储库时,你是在你的系统(PC/笔记本电脑)中直接创建原始存储库的本地副本,而GitHub帐户中没有副本。
其他回答
除了克隆是从服务器到您的机器,分叉是在服务器上复制之外,一个重要的区别是,当我们克隆时,我们实际上得到了所有的分支、标签等。
但当我们分叉时,我们实际上只得到主分支中的当前文件,除此之外什么都没有。这意味着我们没有其他分支等。
因此,如果您必须将某些内容合并回原始存储库,这是一个存储库间合并,并且肯定需要更高的权限。
Fork不是Git中的命令;这只是GitHub实现的一个概念。请记住,Git是为在对等环境中工作而设计的,无需将内容与任何主副本同步。服务器只是另一个对等体,但我们将其视为主副本。
是的,fork是一个克隆。它的出现是因为,未经他人允许,你不能推送他人的副本。他们会为你制作一份副本(fork),在那里你也会有写作权限。
将来,如果实际所有者或其他用户使用类似于您的更改的叉,他们可以将其拉回到自己的存储库中。或者,您可以向他们发送“拉取请求”。
我认为fork是其他存储库的副本,但有您的帐户修改。例如,如果您直接在本地克隆其他存储库,则远程对象源仍然使用您克隆的帐户。你不能提交和贡献你的代码。它只是代码的纯拷贝。否则,如果您分叉了一个存储库,它将通过更新github帐户中的帐户设置来克隆回购。然后在您的帐户上下文中克隆回购,您可以提交代码。
简单地说,
当你说你正在分叉一个存储库时,你基本上是在GitHub帐户中的GitHub ID下创建一个原始存储库的副本。
and
当你说要克隆一个存储库时,你是在你的系统(PC/笔记本电脑)中直接创建原始存储库的本地副本,而GitHub帐户中没有副本。
在此上下文中,“Fork”的意思是“复制他们的代码,以便我可以添加自己的修改”。没什么好说的。每一个克隆本质上都是一个分叉,由原始人决定是否从分叉中提取更改。