2010-11-11 130 views
17

我經常遇到過這種情況。我在一個主分支上工作,我需要測試一個插件,所以我創建了一個新的分支並檢查出來。我將該插件下載到項目目錄中並進行測試。然後我切換回主分支並刪除我創建的分支。爲什麼切換分支時Git不會刪除某些文件?

什麼最終發生的是插件的文件保留在項目目錄。我想知道這是否是正常行爲。爲了在分支機構之間進行無縫切換,我需要做些什麼?

+0

@ipsum:答案? – 2010-11-11 16:33:02

+3

git會不會從你的工作副本中刪除未跟蹤文件,所以,除非你添加插件的文件並創建了提交新的分支上的git不會做任何你的插件文件 – knittl 2010-11-11 16:40:13

+1

@knittl:* *這就是答案。不妨發帖吧。 (除了提到'git clean',或許。) – Cascabel 2010-11-11 16:47:37

回答

12

git會不會從你的工作副本中刪除未跟蹤文件,所以,除非你添加插件的文件並創建了提交新的分支上的git不會做任何你的插件文件。

,如果你想從你的工作樹中刪除未經跟蹤的文件,請使用git clean - 要小心,它會刪除磁盤上的任何未跟蹤文件,有沒有辦法從恢復(不使用反刪除軟件)

+0

'git clean'的潛在危險當然是它爲什麼不會做任何事情,除非你傳遞'-f'選項。 (可能對這種情況有幫助 - 您可以在特定路徑上使用它。) – Cascabel 2010-11-11 20:00:30

+0

爲什麼「git不會從工作副本中刪除未跟蹤的文件」?我的下一個'git add'會添加來自不同分支的未跟蹤文件嗎? – joetsuihk 2011-10-29 16:51:28

+0

@joetsuihk:工作目錄中的未跟蹤文件不屬於任何分支,它們屬於工作目錄。如果'git add'未跟蹤的文件,他們將被包含在下一個提交 – knittl 2011-10-30 13:06:19

0

嘗試結賬-f

請查看git --help結帳:

繼續即使索引或工作樹從頭部不同。 這是用來丟棄本地更改。

+2

我不認爲這是OP的體驗。結帳繼續進行,但在那裏留下一些文件。 – Cascabel 2010-11-11 16:47:11

+0

我同意Jefromi – 2015-02-27 21:46:10

0

如果您身在何處的目錄結構是不同部門之間的來回切換,你會發現有遺留下來的一些文物,你可能需要運行:

git clean -df 

這將「刪除」,「力量」。你將失去所有未跟蹤文件,我認爲這可能是一步遠離:

git reset --hard 
相關問題