2013-07-24 99 views
0

我有一個Rails項目,我做以下步驟創建的文件:Git不會刪除提交後我恢復了

  1. git commit -m "Format gemfile"git push,以確保一切是乾淨的。這一承諾的ID是b24d101

  2. git checkout -b newbranch

  3. 雖然新的分支上我刪除了一個文件,更改了其他2個文件,併產生其他幾個文件。

  4. git status我有2個文件修改,1個文件刪除和幾個文件未跟蹤。到現在爲止還挺好。

  5. 我注意到一個問題,所以我通過git checkout master移回到主分支,並通過git branch -d newbranch刪除了新分支。

  6. git status仍然顯示有幾個未跟蹤的文件。

  7. 我決定恢復到上次提交。

  8. git reset --hard b24d101

  9. git status現在表明,沒有文件被刪除或修改的(事實上,我可以手動檢查後確認這一點,從步驟3中已刪除的文件是存在的,從步驟2檔的編輯3人都沒了)。但是,我仍然有這些未跟蹤的文件。我不想要他們。是不是git應該刪除這些文件,因爲它們被創建:a)在一個新的分支上,這個分支不再存在,並且在刪除之前沒有被合併,以及b)在我提交後的提交之後?

P.S.我想"clean"手動這些文件?

回答

1

您在第3步生成的文件從未提交過,所以git沒有跟蹤它們。 Git永遠不會觸及未跟蹤的文件,這就是爲什麼它在分支刪除時留下的原因。因此,「它們是在新分支上創建的」並不重要,因爲您在分支上時沒有添加或追蹤它們。

但是,如果您已經犯下錯誤,只要您切換回master分支,他們就會被正確刪除。

1

我認爲這是對「P.S.」的回答。問題是是的。 只要新文件沒有被分段或提交,它們就不屬於任何分支,git完全忽略它們,如果你想刪除它們,你將不得不手動完成。

Regards, Udi