分支和叉子的优点/缺点

时间:2015-06-17 20:08:59

标签: git github git-branch git-fork

我目前正在通过主回购的分支处理一个项目。我将更改提交到<fork>/master,然后将提取请求提交给<upstream>/master

我拥有<upstream>的书面许可权。我是否认为通过删除我的分支并简单地为我的工作创建分支(<upstream>/dev_branch1)并提交对这些分支的拉取请求,我是否正确?对于我有写访问权限的repo,使用fork而不是分支有什么优点/缺点?

3 个答案:

答案 0 :(得分:4)

实际上没有太大区别;不同存储库(fork)中的分支与上游存储库中的单独分支几乎相同。只是他们分开了一点。

使用fork的一些优点可能是让它更加分离,以防你想对你的更改更加疯狂。在您的更改进入“真实”项目之前,您可以将其视为另一个临时区域。但是,叉子也会带来一些维护要求;如果你想继续处理项目,你必须保持fork更新,GitHub还为你提供所有的存储库功能,如问题和另一级别的pull请求,可能会使它更复杂。

特别是当您是主要贡献者之一时,只需在上游存储库中推送功能分支就非常有意义。这使得该项目成为人们将关注变化的主要和单点。其他开发人员可以在不必查看自己的分支的情况下及早查看您正在处理的内容(在提交请求之前),并且可以尽早对其进行评论。直接在上游存储库中工作的一个缺点是,您需要注意不要意外地推送到错误的分支;由于这不是您自己的项目,因此可能需要采取全球规则以引起更多关注。

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

答案 1 :(得分:1)

如果您具有写入权限,则无需担心拉取请求。将上游仓库设置为本地仓库的remote,然后在您希望发布上游时将git push更改为上游。

答案 2 :(得分:0)

fork回购的主要原因是更改以提议对其他投影机进行一些更改,或将其他项目用作项目的起点