2016-02-25 79 views
4

正如this post下`目錄/ *`而不是`目錄/`

提到換一種方式下,爲什麼混帳刪除或忽略的文件,如果你有你的.gitignore如下:

/my-ignored-directory/* 

那你就完蛋了 - 一個Git藏匿保存-u後,我被忽視,file.txt的 將會消失(和遺憾,它不是在你剛剛創建 要麼藏匿)。打破undelete包,並希望最好的。 或者,如果你在你的.gitignore如下:

/my-ignored-directory 

那麼你的黃金 - 無後顧之憂,踢回,放鬆,我被忽視,file.txt的 將保持究竟在何處它在git存儲之前保存-u。

爲什麼這種差異?我也想知道,如果如果我.gitignore文件我有/my-ignored-directory/(帶斜線)沒有文件將被刪除?

+0

我剛剛與我的Git版本(1.9.1)測試,我失去了在任何情況下的文件。 – werkritter

+0

@werkritter的,有趣的,爲測試感謝,我希望有人澄清了問題 –

+0

@werkritter,你怎麼測試?你能分享步驟和信息嗎?我只是試圖運行實驗,git沒有從被忽略的目錄中刪除任何文件,但它刪除了不在根目錄中的忽略文件。 –

回答

2

你們倆例子結果將是相同的,忽略的文件都沒有了。有當然解決方案,這在文件中描述:

如果--include-未經跟蹤選項時,所有未跟蹤的文件也被藏匿,然後用git的清理乾淨,留下的工作目錄中一個非常乾淨的州。 如果使用--all選項,則除了未跟蹤的文件之外,還會隱藏和清除被忽略的文件。

Git的內部調用git clean -d工作目錄中一個非常乾淨的狀態。要

命令是:

git stash --include-untracked --all 
+0

你能解釋一下,爲什麼在這兩種情況下文件都沒有了? –

+0

我更新了答案。 – s7anley

+0

感謝,是'混帳乾淨-d'稱爲僅供'git的藏匿--include-untracked'選項?你能分享一個鏈接到資源說明嗎? –

相關問題