【发布时间】:2011-07-20 08:55:48
【问题描述】:
许多 github 存储库要求在每次基本代码更改时创建一个分支。
这与 git 中的分支完全一样。
github为什么要引入forks?
【问题讨论】:
标签: git github git-branch git-fork
许多 github 存储库要求在每次基本代码更改时创建一个分支。
这与 git 中的分支完全一样。
github为什么要引入forks?
【问题讨论】:
标签: git github git-branch git-fork
(我喜欢 git 早午餐的想法 - git 用户在周日聚在一起吃很多油炸食品;))
在 github 上分叉一个项目并在您自己的存储库中进行更改的想法是,项目的所有者不需要信任您或授予您对其存储库的推送访问权限。如果您希望他们考虑合并您的存储库中的代码,那么您可以向他们发送pull request。 GitHub 有一个很好的拉取请求系统,上游开发人员可以在其中审查和评论您的贡献。
在一组值得信赖的开发人员中,每个人都可以推送到一个共享存储库,您通常会将您开发的每个新功能都推送为一个新的主题分支,并要求其他人审查您的工作并考虑将其合并。
关于 git 的许多优点之一是,特定分支提示位于哪个存储库并不特别重要 - 提交将始终具有相同的 SHA1sum,因此您可以随意推送和拉取它。不管它是在 GitHub 上的一个分支中,还是被推送到共享存储库或其他什么...
【讨论】:
要稍微解释一下“为什么我不能将我的分支推送到他们的仓库?”的问题,请考虑即使 github 让您可以做到这一点而不会破坏每个人的整个仓库,大多数人维护者仍然不乐意让他们干净的 repo 变成数十或数百个分支的垃圾场。
看到这些分支的其他贡献者会认为上游开发人员正在开发它们,即使它们确实是来自第三方的长期被遗弃的半成品。
有趣的是,无论哪种方式,您的工作流程都完全相同,只是您在上游存储库的某个位置单击了“分叉”按钮。
比较:
对
创建分叉确实没有任何开销。
如果您已经克隆了上游存储库,并且担心必须进行新的克隆并浪费一些时间,请尝试以下工作流程:
希望这会有所帮助!
【讨论】:
github fork 意味着您有一个 github 存储库,因此您可以将更改推送到此。这意味着您所做的更改在 github 上是可见的,但原始所有者不需要包含它们。
创建分叉可为您提供可写版本的存储库。
在这方面,分支与分叉完全不同。一个叉子可以有很多分支。
【讨论】: