我有以下情况:
Remote: A<-B<-----C<-D<-------\
Local: \-B1<------B2<-B3<-M
因此,我已将来自远程的请求合并到我的本地存储库(M)中。我现在想还原B3,然后回到B2。 我尝试做一个
git revert --no-commit -m 1 M
git revert --continue
现在我的git日志显示以下内容:
commit R
Revert "Merge branch 'master' of https://...."
This reverts commit M, reversing changes made to B3
commit M
....
commit B3
....
....
但是,即使git日志中提到“ 撤消对B3所做的更改”,但是当我执行git状态时,它显示的是我期望的 B3提交后的结果。 。 看来,我实际上是前进而不是后退(新的提交R)。
我的问题:
答案 0 :(得分:0)
您可以将master
重设为B2
并进行合并:
git reset --hard B2
git merge remote/master
提交是不可变的,因此,如果要合并到其他提交中,则必须从头开始。
另一方面,如果您对自己的历史感到满意并且只想看看B2
,则可以查看一下:
git checkout B2
最可能的revert
不是您想要的。 revert
将添加一组提交,这些提交将反转所选范围引入的更改。通常,可以使用更简单的方法来达到所需状态。