2011-05-21 63 views
0

我希望我的git repo處於特定提交狀態。一旦回購處於該狀態,我希望能夠推送到Github,使遙控器處於該狀態。我知道我可以撥打git checkout <commit hash>,我的本地回購將會處於特定提交的狀態,但它不會讓您推。Git可以嗎?

我猜我應該做些什麼git checkout但我不知道該怎麼做。

感謝這個簡單問題的任何幫助:)

回答

2

使用git reset --hard <commit>重置回購到一個特定的提交。

這將使您失去工作目錄更改並在commit之後執行任何提交。您仍然可以從git reflog獲取較新的提交,然後在這些提交中使用git reset

此外,如果您已經推送了其他提交,則必須避免在沒有提交的情況下推送到遠程。

3

你需要強制推動,因爲你將失去歷史。

git push -f origin master 

這將強制推送您的更改。如果您試圖撤銷某些內容,則可能需要考慮git revert,因爲它可以讓您保留歷史記錄。

+0

好的謝謝。我決定反對'git revert',因爲它在當前提交和我想提交的時間之間存在很大的差異。 – icnhzabot 2011-05-21 23:22:54

+1

爲什麼?還原是可以恢復的。失去的歷史不是。 – vcsjones 2011-05-21 23:50:18

+0

我認爲'git revert'是正確的方法,但OP將不得不恢復HEAD和目標提交之間的每個單獨提交,對吧?除非有另一種方式直接使用單個git命令來完成此操作。 – Jeet 2011-05-22 00:21:31

相關問題