我正在使用多个GitHub存储库。到目前为止,我一直的做法是先复刻(fork)原始存储库,然后克隆我的分支。如果我进行了一些更改,我就将它们推送到我的远程分支。
我的疑问是:在那些我可能不会进行任何修改/提交的项目中,我应该像以前那样先fork原始项目,然后再克隆我的分支吗?还是应该直接克隆原始项目?如果这些项目涉及一堆需要自定义的文件(因此,我的本地项目与原始项目不同),情况又会如何?
这并不是很重要。
如果你认为你不会做任何更改,可以直接安全地克隆原始存储库,这样你就可以通过 git pull
直接更新你的本地克隆。一旦你意识到你想要做出改变,你可以在 GitHub 上 fork 它并把 fork 添加为一个额外的远程仓库。
另一方面,如果你认为你将要对远程仓库进行更改,那么你应该 fork 它。一旦你意识到你错了,你不需要进行更改,就可以添加原始存储库作为远程仓库,并移除 fork。
我个人更喜欢始终将 fork 和原始仓库都添加为远程仓库,这样我就可以通过 (例如) git pull original master
更新我的本地克隆,之后我可以使用 git push origin
更新我的 fork(origin
在此是我的私有 fork。名称也不太重要)。如果我不需要 fork 或者不再需要它,我会把它删除。如果我需要它(再次),我会重新创建它。
顺带一提:你不需要在 GitHub 上 fork 一个仓库来进行更改,因为你的本地克隆也是一个完整的仓库。如果在那里保存你的更改就足够了,那也可以。
如果您不打算更改代码,请克隆而不是派生。派生旨在托管您对代码所做的提交,而克隆仅用于复制项目的内容和历史记录。
如果您后来改变主意,想要发布您对克隆仓库所做的提交,您可以随时从原始克隆中派生并将提交推送到派生仓库,只需要将您的派生URL添加到仓库的远程地址即可。