2011-09-12 104 views
2

我正在研究git倉庫中的一個分支,並且只是搞砸了它,並且想要擺脫這些更改。git刪除了一個分支,但仍然在master上進行更改

所以,我沒有提交更改並簽出我的主分支,然後做了git branch -D "branch_to_remove"

但是,這些文件仍在我的目錄中,並且更改仍然在我的主分支上進行提交。

我該如何擺脫所有這些變化?

git checkout master 
git reset --hard HEAD 

要刪除未跟蹤檔案,我通常使用(修改以下@馬克Longair的評論):

git ls-files --exclude-standard --others --directory -z | xargs -0 rm -i 

編輯

回答

3

您可以與您的工作目錄恢復到主

或使用git clean -d作爲Noufal在另一個答案(現已刪除)的評論中提出的。

+1

太棒了,謝謝我結束了使用git clean -f -d並解決了這個問題! – Rapture

+1

幾點意見:(a)如果你只是把參數放在命令行的末尾,你不需要在xargs中使用'-I'(b)解析'git status'的輸出來尋找未跟蹤的文件不如使用'git ls-files --exclude-standard --others --directory'強壯(c),你可以在這個命令中加上'-z',在你的'xargs'調用中加上'-0'也應付文件名與他們的空間。 –

+0

嘿謝謝! Shell的片段很有趣,但有很多錯誤。我想用'git clean'是最終的安全選擇。 –

相關問題