我想知道做一个项目的Fork和做一个克隆之间的区别。

如果我已经分叉了一个项目,我只能通过GitHub发送拉请求吗?


当前回答

GitHub上另一个奇怪的微妙区别是,对fork的更改不会计算在你的活动日志中,直到你的更改被拉到原始的回购中。更重要的是,要把一个分叉变成一个合适的克隆,你必须联系Github支持,显然。

摘自:为什么我的贡献没有出现:

Commit was made in a fork Commits made in a fork will not count toward your contributions. To make them count, you must do one of the following: Open a pull request to have your changes merged into the parent repository. To detach the fork and turn it into a standalone repository on GitHub, contact GitHub Support. If the fork has forks of its own, let support know if the forks should move with your repository into a new network or remain in the current network. For more information, see "About forks."

其他回答

@AniketThakur的回答很好。下面这个问题还没有人回答。

如果我已经分叉了一个项目,我只能通过GitHub发送拉请求吗?

不。如果您是存储库的贡献者,您可以:制作本地克隆。创建本地分支。向该分支添加提交。将本地分支推回github(在此过程中创建远程分支)。创建一个pull请求,请求将该分支合并到主分支(或任何您喜欢的分支)中。

简而言之,分叉可能与“在你的GitHub ID/配置文件下克隆”相同。显然,除了少数例外,任何时候分叉都比克隆好。与克隆存储库不同,fork存储库始终与原始存储库进行监视/比较。这使您能够跟踪更改,发起拉请求,并手动将原始存储库中的更改与您的分叉存储库同步。

基本上,是的。fork只是请求GitHub克隆项目,并在你的用户名下注册它;GitHub还跟踪两个存储库之间的关系,因此您可以可视化两个项目(以及其他分支)之间的提交和提取。

即使您不使用fork,您仍然可以请求人们从您克隆的存储库中提取,但您必须自己处理使其公开可用的问题。或者向开发人员发送补丁(参见git format-patch),他们可以应用到他们的树。

如果你做了提问者暗示的事情(忘记了fork,只是在本地克隆了一个回购,做了更改,现在需要发出一个拉请求),你可以回到正轨:

Fork你想要发送拉取请求的回购 将本地更改推到遥控器 发出拉请求

简而言之,“fork”创建了一个托管在你自己的GitHub帐户上的项目副本。

“克隆”使用git软件在您的计算机上下载源代码和它的整个版本历史到该计算机