2011-04-19 104 views
0

我試圖在我的ROR應用程序上安裝spork。使用Git,我創建了一個名爲spork的分支並修改了一些文件。經過幾個小時試圖讓spork工作,我放棄了它,只是想回到以前的情況。我檢出了主分支,然後刪除了spork分支。Git Master Branch - 如何從已刪除分支撤消chnages?

我知道這是一個新問題,但我找不到答案。將所有文件改回到主人以前的最後一步是什麼?

-TIA

+0

對不起,只是需要絕望,看起來更難。 git reset --hard HEAD – user678604 2011-04-19 04:38:37

回答

0

通過爲spork集成創建實驗的分支,您做了正確的事情;然而,當你決定放棄spork時,最好的辦法是在你的spork分支中提交你的修改,或者在檢查master分支並刪除spork分支之前放棄你的修改。

如果您在工作分支中有未分配的更改,並且簽出了其他分支,那麼這些更改實際上也會顯示在另一分支中。如果您在第一個分支上執行git status,則可以看到此結果,然後檢出另一個分支並執行另一個分支git status - 未執行的更改仍然存在!如果你仔細想一下,這是有道理的 - 未分離的變化不會被git跟蹤,所以在切換分支時它不能自動「隱藏」它們 - 它只是將它們留在原來的位置。這是讓人們(包括我)在開始使用git時輕微混淆/煩人的行爲之一。

要提交更改,只需執行正常的流程git add,git commit。要放棄分支中的工作更改,可以執行git checkout -- <files>。您也可以執行git reset --hard HEAD以擺脫您在分支中所做的任何更改,並將其重置爲最新提交。

+0

感謝您對Git中發生的更詳細的解釋。它讓我花費更長的時間來處理git和rspec,而不是我想象的那樣 – user678604 2011-04-19 15:54:09