git reset --HARD 在公开共享的分支上的后果?

use*_*100 3 git git-reset git-workflow

我在这里阅读 git 教程,其中提到:

\n\n
\n

不要\xe2\x80\x99t 在其他开发人员从中拉取的公开可见分支上使用 git Reset,因为这会强制其他开发人员进行不必要的合并来清理历史记录

\n
\n\n

我不明白问题是什么。如果我有一个公共分支,有 4 个提交,A->B->C->D。D 是最新提交。如果我硬重置回 B。然后,对于已经获取此分支的其他开发人员,当他们再次执行 git fetch 时,他们会看到它们比远程提前了 2 个提交,因此他们重置回B和都好对吧?或者我错过了什么?

\n

Rom*_*eri 5

除了(比方说)鲍勃在他的本地上犯了两次,除了D

A---B---C---D <<< shared-master, origin/shared-master
             \
              E---F <<< feature-bob
Run Code Online (Sandbox Code Playgroud)

但现在在获取之后他看到了这个:

  A---B <<< origin/shared-master
       \
        C---D <<< shared-master
             \
              E---F <<< feature-bob
Run Code Online (Sandbox Code Playgroud)

因此,他(和其他人)可能必须解决令人讨厌的冲突,以便在不 1)破坏他自己的功能的情况下重新建立他的分支,或者 2)将和B中不需要的部分带回到新的共享分支中。当然,这最终取决于当前的情况,这意味着在某些情况下它很容易解决,但原则上这就是为什么它是应该避免的。由于有很多同事和/或大量的变化,这在团队中通常是一个大禁忌。CD