Advantages/disadvantages 分支和分叉

Advantages/disadvantages to branches and forks

我目前正在通过主仓库的一个分支开发一个项目。我正在提交对 <fork>/master 的更改,然后向 <upstream>/master.

提交拉取请求

我有 <upstream> 的写权限。我是否正确地认为我可以通过删除我的分支并简单地为我的工作创建分支 (<upstream>/dev_branch1) 并为这些分支提交拉取请求来简化这件事? advantages/disadvantages 使用分叉而不是对我具有写入权限的存储库进行分支有什么好处?

如果您有写入权限,则无需为拉取请求而烦恼。将上游存储库设置为本地存储库的 remote,然后 git push 上游的更改随时发布。

其实差别不大;不同存储库(fork)中的分支与上游存储库中的单独分支几乎相同。只是隔得有点远

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

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

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

fork repo 的主要原因是更改以提议对其他人的投影仪进行一些更改或使用其他人的项目作为您项目的起点