在git中,是否有一种方法可以有效地重置——soft / revert;在不更改历史记录的情况下恢复-n ?



好吧,我认为这是不可能的,但这是一个场景:

我是结对编程,我必须打破成对。我承诺了我正在进行的工作,所以另外两个人可以在我不在的时候继续工作,但他们也不能在上面工作。现在,从我承诺之前的地方开始工作真的很有帮助。换句话说,如果我的git status看起来像我运行的git reset --soft head~就好了。但是既然他们已经退出了,我不想通过在实际的git reset --soft head~之上工作来改变历史。

我很高兴在制品提交在那里。我不喜欢的是我的IDE没有显示任何变化。我知道我可以在不提交的情况下恢复,但是有更好的方法吗?

为了避免重写branch1的推送历史,可以创建一个新的分支:

git switch branch1
git switch -c branch2
git reset --soft @~

现在你的世界看起来就像你提交branch1之前的那一刻。