孩子为什么要学编程:GitHub:为什么要分叉

我知道分叉是在服务器端克隆存储库。但我不明白为什么我会这样做。

为什么不将原始存储库克隆到我的机器,添加我的代码,而不是将新分支推送到 GitHub 并发出拉取请求?

83

我知道分叉是在服务器端克隆存储库 [...]

在 GitHub 上,fork 是其他一些 GitHub repo 的副本,引用了它被复制的 repo。

enter image description here

备注:分叉的概念起源于 GitHub;它是不是一个 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

That ’ s where aforkcome into play.By forking someone else ’ s repo,you geta copy to which you have write access,i.e.to which you can push your contributions.The entire workflow goes something like this:

确定 Alice 的回购中可以改进的区域。

叉那个回购。

在本地机器上克隆你的叉子。

在该克隆中,进行更改,运行测试,创建提交(可能在新分支上)等。

或者,一旦您对 Alice 代码的修改感到满意,就可以使您的工作更具表现力:整理 / 压缩您的提交,编写尊重 Alice 回购风格的良好提交消息。如果 Alice 在您分叉回购后已将更改推送到 Alice 的回购,则您可能还希望将分支重新调整为 Alice 的分支。

推你的叉子。

向 Alice 发出拉取请求(本质上是通知 Alice 查看您在她的回购叉中所做的更改),并等待她进行审核。

向您的分支推送更多提交(并可能重新构建),直到 Alice 对您的工作感到满意。

如果一切顺利,Alice 将合并您的请求;您的工作将集成到她的 GitHub repo 中。香槟!你的工作没有白费。

如果您不打算很快为 Alice 的 repo 做出贡献,则可以安全地删除 fork,以节省 GitHub 服务器上的空间。另一方面,如果您经常为 Alice 的 repo 做出贡献,请保留您的 fork 并经常将其与 Alice 的 repo 同步。

41

从 Github 文档

fork 是存储库的副本,通过 fork 存储库,您可以自由地尝试更改,而不会影响原始项目。

最常见的是,叉子用于对别人的项目提出更改,或者将别人的项目用作您自己想法的起点。

https://help.github.com/articles/fork-a-repo/
6

通过将您的存储库标记为“从...分叉”,更重要的是,它将在原始项目的分叉列表中列出您的存储库。

这样做的优点之一是,如果原始项目在您仍在处理时中断,人们仍然可以从主存储库的分叉列表中找到您的存储库。

从 github 的角度来看,他们可以通过知道您和原始存储库之间的 git 对象是相同的并且可以共享来节省一些磁盘空间

此外,我认为你不能从一个不是原来的叉子的存储库发出拉请求。至少我不能做到这一点,我不得不分叉,推到叉子,要求拉请求。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(507)
Linux配置vscode:VSCode MakeFile工具配置
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(74条)