2015-12-21 45 views
0

这可能是一个小vaque,但我完全惊呆了这个问题。我正在和一位朋友在一个分支上工作。有时候,当我们积累了许多像“固定错字”之类的“毫无意义”的提交时,他压缩它们,然后用--force标志推动它们。压扁旧的承诺后壁球

接下来,我将这些变化拉下来,尝试提交我的东西。当我尝试推动时,我也得到很多旧承诺推动。我明白,他们在那里,因为从回购消失。但这是一个问题,因为在此之后,他需要解决很多冲突。

我们可以用这个做什么?

+0

你应该在挤压前挤压。如果变更集不打算共享,请不要共享。如果你无法做到这一点,你必须确保每个人在被压扁后摆脱多余的变更集,或者冒着某个人无意中将他们推回到中央/共享存储库的风险。 –

+0

基本上,他在与'master'合并之前压扁。但是,然后,我们又回到了我们的分支有一些变化/修复。那么我应该怎么做,在推动之前挤压呢? –

+0

可能的重复[如何在某人将推折或重置推送到发布的分支后恢复/重新同步?](http://stackoverflow.com/questions/4084868/how-do-i-recover-resynchronise-after-有人推动重组或重设为酒吧) –

回答

2

由于历史记录发生了变化,您需要重新绑定该分支,并且该分支的版本无法再通过该分支的远程版本访问。

做到这一点(假设共享的分支称为featureA):

git fetch 
git rebase origin/featureA 

那么你应该能够不推那些老的提交的方式获得(甚至不会强制推为好)

+0

我总是“变身”(使用PHPStorm,使用rebase来拉)。 –