我想了解在IT技术中,对项目进行Fork和Clone的区别。
如果我没有Fork一个项目,我只能通过GitHub发送pull request吗?
基本上,是的。 fork
是请求 GitHub 克隆项目,并在您的用户名下注册的操作; GitHub 也会跟踪这两个仓库之间的关系,因此您可以可视化查看这两个项目(以及其他 fork)之间的提交和拉取。
即使您不使用 fork
,仍然可以请求其他人从您克隆的存储库中提取内容--但您必须自己处理使其公开可用的问题。或者向开发人员发送补丁(参见git format-patch
),让他们应用到自己的代码树中。
git pull
拉取,因此仍然存在某种关系。如果您克隆了整个副本,则它将位于您自己的本地计算机上,并与原始存储库断开连接。 - JonH您可以在在线repo上提交(或在本地repo上提交然后推送到在线repo),然后发送拉取请求。
项目经理可以接受它以获取您的更改并将其合并到他的主要在线版本中。
简而言之,Forking 可能与“在您的 GitHub ID/profile 下克隆”相同。除了一些明显的例外情况,分叉总是比克隆更好。与克隆存储库不同,分叉存储库始终受到原始存储库的监视/比较。这使您可以跟踪更改、发起拉取请求并手动同步原始存储库中所做的更改与您的分叉存储库。
如果您按照提问者的暗示(忘记 fork 并仅本地克隆一个仓库,进行更改后现在需要发出 pull 请求),您可以重新回到正确的轨道: