分支和分叉的优点/缺点

Sea*_*ach 4 git github git-branch git-fork

我目前正在通过主存储库的分支开展一个项目。我正在将更改提交到<fork>/master,然后向 提交拉取请求<upstream>/master

我有 的写权限<upstream>。我是否正确地认为我可以通过删除我的分叉并简单地为我的工作创建分支(<upstream>/dev_branch1)并为这些分支提交拉取请求来使这变得更简单?对于我有写访问权限的存储库,使用分叉而不是分支有哪些优点/缺点?

pok*_*oke 6

实际上并没有太大区别;不同存储库(分支)中的分支与上游存储库中的单独分支几乎相同。只是\xe2\x80\x99s 之间的距离更远一些。

\n\n

使用叉子的一些优点可能是让它更加分开,以防你想对你的改变更加疯狂。在对 \xe2\x80\x9creal\xe2\x80\x9d 项目进行更改之前,您可以将其视为另一个暂存区域。然而,前叉也带来了一些维护要求;如果你想继续该项目,你必须保持分支是最新的,并且 GitHub 还为你提供了所有存储库功能,例如问题和另一个级别的拉取请求,这可能会使项目变得更加复杂。

\n\n

特别是当您是主要贡献者之一时,仅推送到上游存储库中的功能分支就很有意义。这使得该项目成为人们关注变化的主要和单点。其他开发人员可以尽早(在提交拉取请求之前)看到您\xe2\x80\x99正在做什么,而无需查看您自己的分叉,并且可以尽早对其发表评论。直接在上游存储库中工作的一个缺点是您需要小心,以免\xe2\x80\x99t意外推送到错误的分支;由于它\xe2\x80\x99不是您自己的项目,因此可能适用全局规则,需要您更加注意。

\n\n

至于创建拉取请求本身,没有任何区别。您可以从同一项目的分支创建拉取请求,就像从分支创建拉取请求一样。

\n

  • 我(目前)是该回购协议的唯一贡献者。我肯定会创建主存储库的一个分支。消除这些维护成本的想法听起来很令人愉快。 (2认同)