这可能是一个小vaque,但我完全惊呆了这个问题。我正在和一位朋友在一个分支上工作。有时候,当我们积累了许多像“固定错字”之类的“毫无意义”的提交时,他压缩它们,然后用--force
标志推动它们。压扁旧的承诺后壁球
接下来,我将这些变化拉下来,尝试提交我的东西。当我尝试推动时,我也得到很多旧承诺推动。我明白,他们在那里,因为从回购消失。但这是一个问题,因为在此之后,他需要解决很多冲突。
我们可以用这个做什么?
这可能是一个小vaque,但我完全惊呆了这个问题。我正在和一位朋友在一个分支上工作。有时候,当我们积累了许多像“固定错字”之类的“毫无意义”的提交时,他压缩它们,然后用--force
标志推动它们。压扁旧的承诺后壁球
接下来,我将这些变化拉下来,尝试提交我的东西。当我尝试推动时,我也得到很多旧承诺推动。我明白,他们在那里,因为从回购消失。但这是一个问题,因为在此之后,他需要解决很多冲突。
我们可以用这个做什么?
由于历史记录发生了变化,您需要重新绑定该分支,并且该分支的版本无法再通过该分支的远程版本访问。
做到这一点(假设共享的分支称为featureA
):
git fetch
git rebase origin/featureA
那么你应该能够不推那些老的提交的方式获得(甚至不会强制推为好)
我总是“变身”(使用PHPStorm,使用rebase来拉)。 –
你应该在挤压前挤压。如果变更集不打算共享,请不要共享。如果你无法做到这一点,你必须确保每个人在被压扁后摆脱多余的变更集,或者冒着某个人无意中将他们推回到中央/共享存储库的风险。 –
基本上,他在与'master'合并之前压扁。但是,然后,我们又回到了我们的分支有一些变化/修复。那么我应该怎么做,在推动之前挤压呢? –
可能的重复[如何在某人将推折或重置推送到发布的分支后恢复/重新同步?](http://stackoverflow.com/questions/4084868/how-do-i-recover-resynchronise-after-有人推动重组或重设为酒吧) –