我犯了我的項目。 但是,要刪除該提交,但保留該代碼以下一個提交。 我用這個代碼:恢復提交是強制刪除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