我知道分叉是在服务器端克隆存储库。但我不明白为什么我要这么做。
为什么不将原始存储库克隆到我的计算机,添加我的代码,而不是将新分支推送到 GitHub 并发出拉取请求?
我知道分叉是在服务器端克隆存储库 [...]
差不多是这样吧。在 GitHub 上,分叉是其他 GitHub 存储库的副本,并引用从中复制的存储库。
备注:fork的概念起源于GitHub;这是not一个 Git 概念。
[...] 但我不明白为什么我要这样做。为什么不将原始存储库克隆到我的计算机,添加我的代码,然后将新分支推送到 GitHub 并发出拉取请求?
除非您对相关存储库具有写权限,否则您不能简单地将任何内容推送到其中;服务器将拒绝您的推送,并显示以下形式的错误消息
remote: Permission to bos/text.git denied to Jubobs.
fatal: unable to access 'https://github.com/bos/text/': The requested URL returned error: 403
那就是一个fork开始发挥作用。通过分叉别人的仓库,你会得到您具有写入权限的副本,即您可以将您的贡献推向其中。整个工作流程是这样的:
- 确定 Alice 的存储库中可以改进的区域。
- 分叉该存储库。
- 在本地计算机上克隆您的分叉。
- 在该克隆中,进行更改、运行测试、创建提交(可能在新分支上)等。
- 或者,一旦您对 Alice 代码的修改感到满意,就可以使您的工作更加美观:整理/压缩您的提交,编写尊重 Alice 存储库风格的良好提交消息。如果自从您分叉她的存储库以来,爱丽丝已将更改推送到她的存储库,您可能还想将您的分支重新设置为爱丽丝的分支。
- 推到你的叉子上。
- 向 Alice 发出拉取请求(实质上是通知 Alice 查看您在她的存储库的分支中所做的更改)并等待她审核。
- 向您的分支推送更多提交(并可能重新设置基础),直到 Alice 对您的工作感到满意为止。
- 如果一切顺利,Alice 会合并你的拉取请求;你的工作会被集成到她的 GitHub 存储库中。香槟酒!你的工作没有白费。
- 如果您近期不打算为 Alice 的存储库做出贡献,您可以安全地删除您的分叉,以节省 GitHub 服务器上的空间。另一方面,如果您经常为 Alice 的存储库做出贡献,请保留您的分叉并经常将其与 Alice 的存储库同步。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)