为什么提交到 fork 的 master 分支是不好的做法?

Why is it bad practice to commit to your fork's master branch?

大多数 Git 工作流都说永远不要提交给你的分支的主分支,因为那样你的主分支就会偏离原点。但是,仅仅将您的提交(从您的主分支)重新定位到上游的主节点不是可行吗?我知道这有点复杂,但我不明白为什么这是不好的做法。

这在技术上是可行的,但对于原始 repo 的维护者来说会造成混淆。

  • 原始仓库中的任何分支都应该由 git fetch upstream 更新(而不是你自己的分支)
  • 当你做 PR 时,分支的名称对于隔离和表征你的 PR 的性质很重要

大多数人可能不想每次 想从上游拉取数据时都进行变基,因为您会丢失一些历史元数据(时间戳、潜在的压缩等)。但对于其他人来说,这可能不是问题。

另一个原因是拉取请求。理想情况下,您会将拉取请求的内容放在主题分支上,然后(希望)将其合并到您的上游,之后您只需删除该主题分支并从主分支中拉取。这样您就不会在历史记录中保留旧的(现在重复的)提交。

能够保留您的 master 分支 "pure" 的能力值得一提,因为任何时候您都可以拉取您的 master 并且没有冲突。 这样在你分叉 6 个月后你仍然可以一眼看出什么是 "theirs" 什么是 "yours".

我们正在使用 git 作为更好的 svn。这种模式下直接check in到master是正常的