如果我有一個目錄應用我在一個單一,未跟蹤文件存儲庫和我執行git clean -f
,我得到的消息:如果不刪除應用程序/和未跟蹤的文件仍然存在。「混帳乾淨-f」不留一個空目錄
但是,如果我在同一個目錄中有一個額外的跟蹤文件,並且執行完全相同的命令,那麼未跟蹤的文件將成功刪除。
所以我的問題是:爲什麼Git試圖刪除該目錄,如果它從未跟蹤的文件中清除後它是空的?
下面是一個重現行爲的腳本。提前致謝。
#!/bin/bash
# Create new empty repo
mkdir myrepo && cd myrepo
git init
# Create app directory with main.c
mkdir app
touch app/main.c
# Try to delete main.c with git clean -> Not working
git clean -f
# Add helper.c to app directory and add to index
touch app/helper.c
git add app/helper.c
# Try to delete main.c with git clean -> Now it's working
git clean -f
感謝您的答覆。但是我不清楚爲什麼Git想要刪除整個目錄,如果它在命令後是空的。 – DAXaholic
好吧,git不想刪除目錄(否則它會這樣做,因爲在你的第二種情況下,而不是抱怨和繼續)。由於'git-clean'默認忽略未跟蹤目錄(或者說,沒有跟蹤文件的目錄),所以它永遠不會輸入它們。 – Hasturkun
好吧,現在我明白了。 「......它永遠不會進入他們」是關鍵;) 謝謝! – DAXaholic