我想知道做一个项目的Fork和做一个克隆之间的区别。
如果我已经分叉了一个项目,我只能通过GitHub发送拉请求吗?
我想知道做一个项目的Fork和做一个克隆之间的区别。
如果我已经分叉了一个项目,我只能通过GitHub发送拉请求吗?
当前回答
@AniketThakur的回答很好。下面这个问题还没有人回答。
如果我已经分叉了一个项目,我只能通过GitHub发送拉请求吗?
不。如果您是存储库的贡献者,您可以:制作本地克隆。创建本地分支。向该分支添加提交。将本地分支推回github(在此过程中创建远程分支)。创建一个pull请求,请求将该分支合并到主分支(或任何您喜欢的分支)中。
其他回答
简而言之,分叉可能与“在你的GitHub ID/配置文件下克隆”相同。显然,除了少数例外,任何时候分叉都比克隆好。与克隆存储库不同,fork存储库始终与原始存储库进行监视/比较。这使您能够跟踪更改,发起拉请求,并手动将原始存储库中的更改与您的分叉存储库同步。
fork项目在您的在线存储库(回购)。 克隆的项目在您的本地机器上(我通常在fork回购后克隆)。
你可以提交你的在线回购(或提交你的本地回购,然后推送到你的在线回购),然后发送拉请求。
项目经理可以在他的主要在线版本中接受您的更改。
如果你做了提问者暗示的事情(忘记了fork,只是在本地克隆了一个回购,做了更改,现在需要发出一个拉请求),你可以回到正轨:
Fork你想要发送拉取请求的回购 将本地更改推到遥控器 发出拉请求
简而言之,“fork”创建了一个托管在你自己的GitHub帐户上的项目副本。
“克隆”使用git软件在您的计算机上下载源代码和它的整个版本历史到该计算机
克隆是在存储库的两个(可能不同的)版本之间进行适当的复制和分离。当一个repo被修改时,必须使用push命令将新内容主动复制到另一个repo。而另一个回购的变化。
当你在服务器上fork一个repo时,不需要复制内容,因为两个repo将使用来自同一服务器的相同[固定对象]内容。“诀窍”在于管理不同的用户观点,以便每个用户都相信他们拥有完整的个人回购副本。在fork之间的push和fetch只是更新用户的指针。
在较低的级别上,git在内部做同样的事情。如果你有三个不同的文件,每个文件都包含Hello World,那么git简单地“fork”它的Hello World blob的单一副本,并根据需要在三个地方提供它。
在服务器上分叉的能力意味着Github的大存储额度平均来说并不是那么大,因为每个人都共享一个单一的底层回购。