2016-04-14 42 views
1

當我運行git add --all *時,文件刪除不會被暫存。 git status的輸出顯示了標題爲「更改未提交進行提交」的紅色刪除。它只是增加新的內容,而不是刪除我已刪除的內容。我該怎麼辦?爲什麼文件刪除沒有通過「git add --all *」進行分段?

+1

'git add --all .' – Nayuki

+0

因爲編寫'*'時,shell會將其擴展到目前爲止存在於當前目錄中的所有文件。 Git沒有看到'*'(它看到一個文件列表),並且從來沒有聽說過你打算選擇的已刪除文件。 – Nayuki

+1

謝謝!修復它 – Guerrilla

回答

3

運行git add --all *時,命令shell將*通配符展開爲當前工作目錄中文件/目錄名稱的列表。 Git程序永遠不會看到*;它會收到一個像git add --all foo.txt bar.jpg subdir這樣的實際命令行。

這很好,你正在使用--all(或-A)標誌,它會告訴Git逐步更改到被刪除的文件路徑。因此,您只需運行git add --all .即可讓Git查看整個當前目錄(以及所有子項目遞歸),添加創建/修改的目錄,並且還考慮索引中的項目但不包含在工作目錄中更長時間存在。

+0

'git add' flags的有用參考:http://stackoverflow.com/a/26039014/839689 – Nayuki

相關問題