我知道stackoverflow中有很多类似的问题,但在问这个之前我做了一些研究,找不到直接回答我的问题。
我的情况如下:我有一个私人仓库,并且正在与另一位开发人员合作。因此,我们是两个使用私有存储库的开发人员,这意味着这push -f
不是世界末日。该存储库将很快公开,此时我们评估修复错误并进行一些返工以更改历史记录(这样,一旦存储库公开,人们就可以使用坚实的工作提交基础)。
昨天我已经推送了一个提交master
,由于某种原因,它只能在我的机器和我们的开发服务器中工作,但不能在我的同事机器和生产服务器中工作。
album
因此,我们从之前的提交中分出了一个分支 ( )。我的同事在这个分支上提交了几次。他们将分支推送到远程存储库(我们需要这样做才能将他的工作版本发布到生产服务器),我们最终得到了这样的结果:
master: (previous commits) - C1 - C2 (my "troubled" commit)
\
album: C3 - C4 - C5 - C6
在正常情况下,我会签出master
(其中我的麻烦提交C2
是头部)并合并album
到其中。
但这会留C2
在历史上,另外,由于我们无法弄清楚我们的生活,为什么我的提交破坏了环境,我们觉得最好以相反的方式“重新获得”提交。
我在想什么:
- 查看
album
- rebase master 在它之上
album
本地和远程删除push -f
掌握
期望的结果:
master: (previous commits) - C1 - C3 - C4 - C5 - C6 - C2'
C2'
应该在所有机器上固定和工作的地方。
所以,我想清楚了吗?如果没有,那里的 git 大师将如何处理这个问题?
非常感谢你。