Git 分支和叉的优点/缺点

Git 分支和叉的优点/缺点,git,github,git-branch,git-fork,Git,Github,Git Branch,Git Fork,我目前正在通过主回购的一个分支进行一个项目。我正在将更改提交到/master,然后将请求提交到/master 我有的写入权限。我是否正确地认为可以通过删除我的fork并为我的工作创建分支(/dev_branch1)并为这些分支提交pull请求来简化这一过程?对于我有写访问权的repo,使用fork而不是分支有哪些优点/缺点?如果您有写访问权,那么就没有必要为拉请求而烦恼。将上游回购设置为本地回购的一种方式,然后在您想要发布变更时,git将其推送到上游。实际上没有太大区别;不同存储库(fork)中

我目前正在通过主回购的一个分支进行一个项目。我正在将更改提交到
/master
,然后将请求提交到
/master


我有
的写入权限。我是否正确地认为可以通过删除我的fork并为我的工作创建分支(
/dev_branch1
)并为这些分支提交pull请求来简化这一过程?对于我有写访问权的repo,使用fork而不是分支有哪些优点/缺点?

如果您有写访问权,那么就没有必要为拉请求而烦恼。将上游回购设置为本地回购的一种方式,然后在您想要发布变更时,git将其推送到上游。

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

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

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


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

fork repo的主要原因是根据团队规模,更改对其他人的投影仪的某些更改,或者使用其他人的项目作为项目的起点,使用pull请求可以提供一种理想的机制来方便代码审查。尽管如此。正如@DavidTansey所说,我们的团队使用pull请求进行代码审查。我同意其他人的看法-团队中的其他人不仅可以对更改进行评论,学习/教授如何成为更好的开发人员(即使通过观察其他PRs),还可以运行构建,sonar在你的PR上检查等,以尽量减少合并后可能出现的问题。我(目前)是回购协议的唯一参与者。我肯定会创建一个主回购的分支。删除这些维护成本的想法听起来很不错。此外,我认为如果每个团队成员都放弃回购协议,而忘记更新分叉回购协议,那么在将您的更改从分叉回购协议合并到主回购协议时,合并冲突的可能性很高。