我想知道做一个项目的叉子和做clone
它的区别。
如果我分叉了一个项目,是否只能通过GitHub发送请求请求?
我想知道做一个项目的叉子和做clone
它的区别。
如果我分叉了一个项目,是否只能通过GitHub发送请求请求?
Answers:
基本上是。A fork
只是要求GitHub复制项目并将其注册到您的用户名下;GitHub还跟踪两个存储库之间的关系,因此您可以可视化两个项目(和其他分支)之间的提交和提取。
即使您不使用,您仍然可以要求人们从克隆的存储库中提取信息,fork
但是您必须自己将其公开使用。或向开发人员发送git format-patch
可以应用于其树的补丁程序(请参阅参考资料)。
git pull
。叉子需要多个命令。毫不奇怪,几乎我看过的所有叉子都是过时的。叉子就像类固醇上的Maven存储库问题一样。而不是一个过时的仓库(Maven),而是成千上万的仓库(Git)。
git pull
,因此仍然存在某种关系。如果克隆了整个副本,则它将位于您自己的本地计算机上,并与原始存储库断开连接。
当您说要派生存储库时,基本上是在GitHub ID下创建存储库的副本。这里要注意的要点是,对原始存储库所做的任何更改都将反映回您的分叉存储库(您需要获取并重新设置基础)。但是,如果您对派生的存储库进行任何更改,则必须显式创建对原始存储库的拉取请求。如果您的拉取请求已由原始存储库的管理员批准,则您的更改将与现有原始代码库一起提交/合并。在此之前,您的更改将只在您的副本中反映分叉。
简而言之:
Fork&Pull模型允许任何人分叉现有存储库,并将更改推送到其个人分叉,而无需授予源存储库访问权限。然后,更改必须由项目维护人员拉入源存储库。
请注意,在分叉之后,您可以在计算机上本地克隆存储库(名称下的存储库)。在其中进行更改,然后将其推送到您的分叉存储库中。但是,要在原始存储库中反映您的更改,必须批准您的提取请求。
几个其他有趣的讨论-
克隆是您在两个(可能不同)版本库之间进行适当的复制和分隔的地方。修改一个存储库后,必须使用push命令将新内容主动复制到另一个存储库中。并获取其他回购中的更改。
当您在服务器上分叉存储库时,不需要重复内容,因为两个存储库都将使用同一台服务器上的相同[固定对象]内容。技巧是管理不同的用户观点,以便每个用户都认为自己拥有该回购协议的完整个人副本。叉之间的推入和提取只是更新用户的指针。
在较低的级别上,git内部执行相同的操作。如果您有三个不同的文件,每个文件包含Hello World
,则git只需“分叉”其Hello World Blob的单个副本,然后根据需要在三个位置中的每个位置提供它。
能够在服务器上分叉的能力意味着,Github的大量存储配额并不是平均而言那么大,因为每个机构都共享一个基础存储库。
简而言之,Forking可能与“在GitHub ID /配置文件下克隆”相同。很明显,分叉总是比克隆更好,但有一些例外。与克隆存储库不同,分支存储库始终会与原始存储库进行监视/比较。这样,您就可以跟踪更改,发起拉取请求,还可以手动将原始存储库中所做的更改与派生的存储库进行同步。