當我運行git add --all *
時,文件刪除不會被暫存。 git status
的輸出顯示了標題爲「更改未提交進行提交」的紅色刪除。它只是增加新的內容,而不是刪除我已刪除的內容。我該怎麼辦?爲什麼文件刪除沒有通過「git add --all *」進行分段?
1
A
回答
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
相關問題
- 1. 爲什麼`git add -p`沒有處理未跟蹤的文件?
- 2. 爲什麼「git add *」排除.gitignore?
- 3. 爲什麼Git檢出這個被刪除的分支沒有抱怨?
- 4. 爲什麼git子樹合併不會刪除文件?
- 5. 爲什麼git remote add不起作用?
- 6. 爲什麼我們需要git add命令中的文件名?
- 7. 爲什麼「git log-foo」爲刪除的文件foo工作?
- 8. `git add .`和`git add -u`有什麼區別?
- 9. git add有什麼區別?和git add -A?
- 10. `git add -p`有什麼選擇?
- 11. 爲什麼我的package.json沒有通過npm install進行更新?
- 12. 爲什麼git合併有時會在不應該刪除更改時刪除?
- 13. 爲什麼我不能使用jquery進行文件刪除?
- 14. 通過Git刪除具有挑戰性的文件rm
- 15. Git刪除沒有痕跡
- 16. 爲什麼SQLCommandBuider沒有刪除?
- 17. 通過Cntlm進行代理:爲什麼git clone會掛起?
- 18. 爲什麼刪除* .dll.refresh文件沒有影響?
- 19. 通過logstash進行日誌分析,沒有產生字段
- 20. 刪除git commit的所有文件?
- 21. 爲什麼git會一直刪除我的文件夾?
- 22. 爲什麼git認爲我的文件已經或應該被刪除?
- 23. 如何從git存儲庫中刪除* ALL *文件和目錄?
- 24. 爲什麼沒有通過coverage.py檢查某些Python文件?
- 25. 爲什麼我的包沒有通過?
- 26. 爲什麼切換分支時Git不會刪除某些文件?
- 27. 爲什麼git add -A不會添加我所有的png文件?
- 28. git刪除分支沒有刪除提交
- 29. 這是git的「git add」子文件夾的正確行爲?
- 30. 通過SFTP刪除文件
'git add --all .' – Nayuki
因爲編寫'*'時,shell會將其擴展到目前爲止存在於當前目錄中的所有文件。 Git沒有看到'*'(它看到一個文件列表),並且從來沒有聽說過你打算選擇的已刪除文件。 – Nayuki
謝謝!修復它 – Guerrilla