GIT不强迫许多大合并吗?

Roy*_*ari 2 git

我正在进入GIT世界,但似乎GIT有一个巨大的劣势.因为您正在提交到您自己的本地存储库,并且只有在您提交给外部世界的几次提交之后,它是否会创建许多大型合并?

Kzq*_*qai 6

实际上,在git中几乎所有情况下都有一种合并方式.您可以重新设置本地存储库,重新安排历史记录,而不是合并.通过使用rebase,规范/原始存储库永远不会重新排列,并且很少有任何合并提交,但重新安排本地存储库历史记录以更紧密地匹配主存储库.

所以:

git fetch
git rebase origin/master
// resolve any conflicts (if there are any) by altering your own commits
git rebase --continue
git push
Run Code Online (Sandbox Code Playgroud)

并且所有提交都是原子的,而origin/master将永远不会有任何合并提交.

现在,在一个罕见的极少数情况下,变基过程将变得复杂,你会发现自己解决了很多冲突,在这种情况下你可能想要git rebase --abort退出rebase过程然后去合并,但我'已经过了几个月而不需要在这一点上采用合并,因此保持历史线性不是太难.

基本上它正在做的是采取破坏性最小的方法.你说的是"嘿,我的所有提交都是我添加到我当地主分支机构的提交 - 以后 - 无论其他人放在中心/规范分支机构是我的责任,所以 - 我将是重新安排我的码." 通过这种方式,无论进入任何存储库的主分支,被认为是规范的FIRST优先,而其他人不必处理为成功推送到主分支的任何内容重写历史的合并提交.