如何恢复Git软复位?

时间:2017-01-09 03:57:12

标签: git git-revert

我在一个分支机构工作,偶然我已经完成git reset HEAD~1,因为我以为我正在重置我的最后一次提交。

问题是我甚至没有提交我的更改,所以我已经完成了重置提交,这是由其他人完成的。对我正在处理的文件进行了很多更改,因此我没有注意到并继续我的工作。在我提交并推动我的更改之后,我注意到了丢失提交。

develop branch: commitA -> commitB -> commitC

my branch: commitA -> commitB -> myCommit

有没有办法在我提交之前还原这些更改并插入commitC

2 个答案:

答案 0 :(得分:2)

您可以通过Solution& this_val = *this; sort(nums.begin(), nums.end(), this_val); 查看工作树。首先,返回git reflog并选择commitC堆栈的myCommit顶部。然后只需更新远程。

git log

答案 1 :(得分:0)

您无需还原提交,因为您可以 rebase 远程服务器上的本地分支,并在重新应用提交之前干净地引入commitC

我不知道你在本地完成了什么,最终得到了你向我们展示的分支图,但我认为你可以简单地在删除develop时修改你的分支以引入{{1} },然后重播你的commitC

myCommit

现在您应该可以通过以下方式快速转发远程分支:

git fetch origin           # bring origin/develop up to date
git checkout develop       # checkout local develop branch
git rebase origin/develop  # rebase your local branch on the remote one