2012-05-09 96 views
5

我已經完成了在此鏈接描述的過程http://toroid.org/ams/git-website-howto
它的工作原理就像一個魅力,但現在我必須臨時將遠程存儲庫(和結帳)恢復到先前州。
我認爲我可能只需要在本地恢復並推送(並且結賬會正常工作),但我不確定。
注意,這不是一個明確的復歸,只是一個臨時(認爲它好像我推到生產的最新變化之前,我應該)如何恢復git上的遠程裸存儲庫

回答

8

在你的本地倉庫使用git reset --mixed <commit>然後git push --force遠程。您可能需要首先隱藏未提交的更改。

git-reset manpage

--mixed

重置索引而不是工作樹(即更改的文件被保留 但不標記爲提交)和報告一直沒有什麼更新了 。這是默認操作。

+0

@filaruina唐如果你想要一個「暫時恢復」的名字,就不要使用它。 – KurzedMetal

+0

@KurzedMetal謝謝你指出我的錯誤。我運行了一系列測試,' - mix'似乎具有預期的效果。 – 2012-05-09 18:13:08

+0

它的工作原理,非常感謝!儘管我可能會添加一個-f在git push中是需要的。 – filaruina

3

重置您的本地主(假設它是要恢復,當然主分支)分支到以前的承諾,並與-f推送到服務器或--force

git reset --hard HEAD^ 
git push -f origin master 
+0

重置--hard不是暫時的,它改變了工作樹,而不是暫時的改變。我用 - 混合,它的工作。無論如何,git push必須是--force或者它不起作用,謝謝。 – filaruina

+0

你的問題從來沒有說過,你需要保持工作樹完好無損。重置 - 只要您不想重置未提交的更改,hard可以是臨時的。您可以隨時通過重設復位來撤銷重設,以便說話。但是可以肯定的是,混合是要走的路。乾杯! – ralphtheninja

+0

對不起,應該更清楚一點。希望我可以選擇兩個答案作爲接受。不管怎樣,謝謝! – filaruina