有沒有一種很好的方式來改變我的Git工作副本的東西給定數量的提交前。如何更新我的git工作副本到以前的版本
E.g.看到3個提交到過去,像:
git reset HEAD - 3
這裏的用例是,我只是想看看如果在當前工作副本失敗的試驗也沒有在我的最新承諾。我不一定要對以前的版本進行任何更改。然後我想將工作副本更改回最新的提交。
有沒有一種很好的方式來改變我的Git工作副本的東西給定數量的提交前。如何更新我的git工作副本到以前的版本
E.g.看到3個提交到過去,像:
git reset HEAD - 3
這裏的用例是,我只是想看看如果在當前工作副本失敗的試驗也沒有在我的最新承諾。我不一定要對以前的版本進行任何更改。然後我想將工作副本更改回最新的提交。
如果你只是想看看在先前提交(不改變你的分支/倉庫的狀態),使用git checkout
。
git checkout HEAD~3
如果您決定要開發關閉這一點,然後可以分支。
git checkout -b specialFeature47
要返回到現在,只需簽出您所在的分支名稱即可。
git checkout master
厭倦了建議的git reset
解決方案。那些實際上移動你的分支指針(有效地刪除這3個提交)。
是的,這是可能的:
git reset --hard HEAD~3
謝謝丹尼爾。我在原來的問題中忘記提到我也想再次向前邁進。基本上,我只是想輕鬆地回滾和前進。這是什麼命令? –
@KevinStembridge:沒有用於前滾的等效語法。您需要通過其他方式確定提交。例如,如果回滾之前的HEAD是分支的HEAD,則可以簡單地使用'git reset --hard
見['gitrevisisons'](https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html),'@ {n}'和'@ { - n}'非常很有幫助。 – jthill
你總是可以做到:
git的結帳HEAD〜15
和移動15提交回來。當前的提示完全不受干擾,您可以四處移動,甚至可以構建該版本並檢查等。要返回,請執行git checkout mybranch
。如果您想在那裏開始工作(並將原始分支留在冰上),您可以從git branch newbranch
開始,並從現在開始使用newbranch
。
考慮你使用任何歷史的改寫指令(commit --amend
,rebase
,reset
和這樣)之前在做什麼小心,有大量的損失工作存在的真正潛力。在git
中分支是很便宜的,大部分可以通過倒回歷史來完成的事情可以通過創建一個從過去某處開始的新分支來完成,也許可以使用當前的master
分支來切換它。在舊分支上完成的工作稍後可能會派上用場;如果不這樣做,無論如何,保持它的成本可能可以忽略不計。
+1這應該是公認的答案,因爲這不會損害回購。 – tubaguy50035
謝謝@TheBuzzSaw。這更像我想要實現的。我更新了我的問題,使其更加明確。 –