我犯了我的项目。 但是,要删除该提交,但保留该代码以下一个提交。 我用这个代码:恢复提交是强制删除Github
// now commit is A
git reset --soft 9c74193
// 9c74193 is old commit
git commit -m "My commit" `
git push -f origin master
我想恢复提交A. 我能做到吗?如何 ?
非常感谢。
我犯了我的项目。 但是,要删除该提交,但保留该代码以下一个提交。 我用这个代码:恢复提交是强制删除Github
// now commit is A
git reset --soft 9c74193
// 9c74193 is old commit
git commit -m "My commit" `
git push -f origin master
我想恢复提交A. 我能做到吗?如何 ?
非常感谢。
如果这是最近做的,你仍然有你跑上面的命令在本地回购,则引用日志可能仍有引用提交A
。
$ git reflog
dd3f691 [email protected]{0}: commit: My Commit
9c74193 [email protected]{1}: reset: moving to 9c74193
aaaaaaa [email protected]{2}: commit: A
$ git checkout [email protected]{2}
如果你一直在走动了很多HEAD
指针,你也可以查看具体的分支引用日志
$ git reflog master
dd3f691 [email protected]{0}: commit: My Commit
9c74193 [email protected]{1}: reset: moving to 9c74193
aaaaaaa [email protected]{2}: commit: A
$ git checkout [email protected]{2}
一旦你签A
你会在分离的头的状态。如果您确定这是您想要的,您可以强制将现有分支移至此处。 (例如,如果先前的强制推送给其他开发者带来了问题,并且您试图按照以前的方式解决问题,那么可以使用git branch -f master
。)或者您可以在此处创建新的分支或标记,或其他任何内容。
当然,这可能需要另一次推动力(例如,如果你确实将master
移回)。
谢谢! 我恢复了我的代码。 但我看到“9c74193 HEAD @ {25}”,有什么区别 ? –
不完全确定你在这里问什么......也许这将澄清:输出'9c74193 HEAD @ {25}'意味着'HEAD'已经移动了25次,因为它在缩写ID为9c74193的提交中“ 。在我的示例中,我必须使用占位符,当然,因为我不知道任何实际提交的ID(除了您在'reset'命令中提到的那个ID) –
什么**确实**你的意思是“恢复提交A”?请详细解释你想要完成的事情。 –
你的意思是恢复提交? – LethalProgrammer