2017-09-03 239 views
0

所以我通過修改上次提交來改變我的本地提交歷史記錄。僅供參考,我對GIT沒有經驗。我想修改是用來撤消git add --all。所以我在堆棧溢出問題中運行了兩條命令: How to undo "git commit --amend" done instead of "git commit"如何恢復git提交歷史記錄

但是看看散列表,我發現它仍然不同。在不破壞源代碼的變化的情況下,我如何重置本地git commit歷史記錄到我在github中的記錄?

回答

1

使用reset --soft HEAD^1然後pull origin <branch>

這將收回由一個承諾,而刪除你的本地修改的頭部,然後將拉你的分支更新歷史。之後,像以往一樣將您的更改保存爲新的提交和推送。

+0

謝謝,我會給這個測試...我也做了另一種方式。在附註中,如果github和local之間的哈希匹配,我是否清楚? –

+0

這可能是以前的嘗試的結果,但它只是第二次提交。 –

+0

如果哈希匹配(與github)爲以前的錯位提交,我是否明確推動我的最新提交? –

0

因此不幸的是,Sinapse的解決方案沒有工作,因爲我可能會破壞歷史,更多地運行來自其他堆棧溢出問題的命令。

最後,我從github中創建了另一個克隆,並使用新克隆的克隆替換了.git文件夾,然後繼續進行正確的提交(尚未將更改推送到github)。第二次提交(我搞砸了)的散列現在有一個匹配的散列。

+0

不能問另一個問題,有人可以告訴我,如果哈希匹配,我是否明確推動下一次提交? –

+0

你只是做了一件非常危險的事!我的建議是,不習慣這個。總是有一個乾淨的方式來操縱你的歷史與git命令。但現在我認爲你很好走。 – Sinapse

相關問題