2014-02-25 74 views
1

我是Git的新手,不確定我做錯了什麼。例如,我有許多分支,例如填充佈局,數據上傳,簽出等。當我必須在佈局中更改某些內容時,我已經轉到了新的分支。所以我認爲最好回到填充佈局分支並在那裏進行修改。所以我輸入了git checkout filling-layout,並刪除了我在佈局中的一些內容,並且回到了之前的版本,所有的更改都消失了。我認爲我已經承諾填寫佈局,並將其上傳到github和heroku。意外地回滾到git中的前一個提交

  • 任何想法,我怎麼能得到它回來?
  • 也有人可以解釋爲什麼會發生這種情況?
  • 什麼是最佳做法,當你必須做一個小的改變, 可能會進入以前承諾的分支?
  • 製作新分支還是可以檢查現有的 分支進行更改會更好嗎?
+1

這聽起來像你的新作品可能仍然存在。查看你做了新工作的分支,看看它是否回來。 –

回答

4

嘗試檢出以前的分支。

這可能會實現

git checkout - 

它將嘗試籤你是在當前的(類似於cd -)之前的分支。

一旦您在git中進行了更改,就很難將它們鬆開。檢出分支將更改工作樹以匹配該分支中的內容,但切換將恢復工作樹的狀態爲前一分支的狀態。

查找以前提交的另一種方法是使用git reflog。這將列出HEAD所提交的內容,並使用散列表可以檢出任何這些內容。

+0

謝謝Klas。所以我應該嘗試按照你所提到的輸入命令或者輸入分支名稱。 – amey1908

+0

@ amey1908要麼會做得很好。 'git checkout -'很好,如果你忘記它是什麼分支。 –

+0

由於出現錯誤,git不允許我簽出另一個分支,錯誤:您對以下文件的本地更改將被checkout覆蓋:.idea/workspace.xml。所以我將.idea /添加到了我的.gitignore中,但我必須在檢出另一個分支之前提交我的更改。恐怕這個提交會覆蓋我的填充佈局分支,它已經刪除了我所有的更改。那應該好嗎? – amey1908

相關問題