我应该fork并克隆我的代码库,还是只克隆原始代码库?

24

我正在使用多个GitHub存储库。到目前为止,我一直的做法是先复刻(fork)原始存储库,然后克隆我的分支。如果我进行了一些更改,我就将它们推送到我的远程分支。

我的疑问是:在那些我可能不会进行任何修改/提交的项目中,我应该像以前那样先fork原始项目,然后再克隆我的分支吗?还是应该直接克隆原始项目?如果这些项目涉及一堆需要自定义的文件(因此,我的本地项目与原始项目不同),情况又会如何?

2个回答

29

这并不是很重要。

如果你认为你不会做任何更改,可以直接安全地克隆原始存储库,这样你就可以通过 git pull 直接更新你的本地克隆。一旦你意识到你想要做出改变,你可以在 GitHub 上 fork 它并把 fork 添加为一个额外的远程仓库。

另一方面,如果你认为你将要对远程仓库进行更改,那么你应该 fork 它。一旦你意识到你错了,你不需要进行更改,就可以添加原始存储库作为远程仓库,并移除 fork。

我个人更喜欢始终将 fork 和原始仓库都添加为远程仓库,这样我就可以通过 (例如) git pull original master 更新我的本地克隆,之后我可以使用 git push origin 更新我的 fork(origin 在此是我的私有 fork。名称也不太重要)。如果我不需要 fork 或者不再需要它,我会把它删除。如果我需要它(再次),我会重新创建它。

顺带一提:你不需要在 GitHub 上 fork 一个仓库来进行更改,因为你的本地克隆也是一个完整的仓库。如果在那里保存你的更改就足够了,那也可以。


谢谢。我可能会继续fork那些我可以修改的存储库,而只是克隆其他存储库。 - Iñigo

14

如果您不打算更改代码,请克隆而不是派生。派生旨在托管您对代码所做的提交,而克隆仅用于复制项目的内容和历史记录。

如果您后来改变主意,想要发布您对克隆仓库所做的提交,您可以随时从原始克隆中派生并将提交推送到派生仓库,只需要将您的派生URL添加到仓库的远程地址即可。


谢谢您的回复,非常有帮助。 - Iñigo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接