2017-08-14 317 views
3

我的編程合作伙伴和我對Git和Gitkraken相當陌生,犯了一些錯誤,做了一些推動並按錯誤順序提交,並使事情相當糟糕。我想從幾個提交中獲取快照,並手動將其與代碼的當前狀態進行比較。沿回到上一次提交Gitkraken

行的命令「把工作目錄狀態這個歷史性承諾」 或更好,但 「給我的內容本歷史提交到不同的工作目錄,我將命名「

給我的選項看起來並不那樣。我看到「重新設置主機到這個提交」有幾種風格,但是這些標題都沒有讓我相信我會去查看以前的狀態而不會損壞返回到當前狀態的路徑。我錯過了什麼嗎?做什麼是我想要做的最好的方法是什麼?

回答

0

我建議你使用git reflog,這個命令包含你的提交和修改的本地歷史記錄,這個日誌你會看到你本地回購的所有事件。

找到確切承諾要恢復後,您可以設置與git reset --soft [email protected]{n}

什麼--soft確實犯的出發點是

Does not touch the index file or the working tree at all (but resets the 
head to <commit>, just like all modes do). This leaves all your changed 
files "Changes to be committed", as git status would put it. 

在這之後,你將擁有所有的變化在您的舞臺區域,然後您可以決定是否再次提交或更改內容。

我建議您閱讀this部分從Git's book和特別是this部分關於撤消事情。

PS。作爲一種額外的方式,您可以多次使用git reset,因爲您使用的所有命令都保存在git reflog中,因此,如果您執行的操作不是您想要的,那麼您也可以撤消它。

希望它可以幫助

0

...但沒有這些頭銜的說服我,我會去看看 以前的狀態,而不會損壞路徑返回到當前狀態...

首先,你總是可以回去。 GitKraken提供了方便的撤消按鈕,可讓您用簡單的按鈕克利克恢復大部分事情。如果你想確定你可以輕鬆回去,你可以創建一個backup分支。如果事情出錯,請檢查出來,然後你就回來了。

因此,你可以放鬆,只是嘗試一些事情,無需擔心打破任何事情。現在的問題是你真正想做的事:

  • 「把工作目錄狀態這一歷史性的承諾」

    如果你只是想恢復到以前的狀態(即提交),您可以使用reset <branch> to this commit - hard。你會回到選定的提交,就好像什麼都沒發生一樣。如果您的前置狀態仍然可以從任何分支(如果您創建了備份分支,則是這種情況),您仍然可以查看所有提交及其更改。

    請注意,您在執行硬重置時會發生未分配和未被更改的更改。

  • 「給我這個歷史性的內容提交到不同的工作 目錄,我將其命名爲」

    的Git不會只知道一個工作目錄,所以這不是直接可行的。 然而,您可以像@ChristopherDíazRiveros所建議的那樣,將您當前的狀態與以前的狀態進行比較。而不是hard重置,您可以執行soft之一。這會將您的工作目錄重置爲選定的提交,但保留所有更改(與之前的狀態相比)作爲分階段更改。這可以讓你輕鬆地檢查它們,因爲它們出現在GitKraken的右下角,你可以根據需要放棄或提交。

相關問題