[英]git add * does not add deleted files
我有一個本地目錄,我已經在其中初始化了 git。 我已經使用以下命令在 git 中添加了該目錄的所有文件:
git add *
現在,如果我從本地目錄手動刪除一個文件,我也想從 github 中刪除它。 我試過了
git add -A *
但它不起作用。 每次我也必須從github手動刪除它。
問題是 glob ( *
) 是由您的 shell 而不是 git 擴展的,並且 shell 對您已刪除的文件一無所知。 git add -A
沒有更多參數將添加所有文件,包括已刪除的文件。 git add .
也將在當前的 git 版本中執行此操作。 您也可以按照其他答案中的建議對單個文件使用git rm --cached <file>
。
使用git rm
刪除文件通常更容易,因為這將刪除文件並git rm
刪除。
您應該使用“git rm”命令。
git rm /path/to/file
例如:轉到您的 git 目錄並鍵入
git rm 文件.txt
然后做一個 git commit 說:
git commit -m "刪除文件"
最后將您的更改推送到您的 git 存儲庫。 一旦您推送這些更改,該文件現在也將從您的存儲庫中刪除。
這篇關於堆棧溢出的早期帖子提供了更多信息: Git:為什么文件刪除不同步?
希望這可以幫助!
如果你想從索引中刪除一個文件,你應該使用
git rm filename
文檔可以在這里找到: https : //git-scm.com/docs/git-rm
此命令的一個重要說明是:
git rm 不會僅從您的工作目錄中刪除文件。 (沒有選擇僅從工作樹中刪除文件並將其保留在索引中;如果您想這樣做,請使用 /bin/rm。)
讓我知道它是否有效!
您唯一需要做的是從本地存儲庫中刪除文件時,而不是手動從本地存儲庫中刪除文件使用,
git rm <file-name>
或者
git rm -rf <folder-name>
之后,在本地提交更改並推送它。 它應該反映在本地和遠程存儲庫中。
或者,如果您已經手動刪除了本地存儲庫中的文件,現在如果您還想從遠程存儲庫中刪除,請使用--cached
屬性。 那是,
git rm --cached <file-name>
或者
git rm -rf --cached <folder-name>
現在,如果您手動刪除了文件並希望反映在本地和遠程 git 存儲庫中,請使用,
git add -u .
希望這可以幫助! :)
我總是使用git add -A .
對於大多數事情。
請注意.
指定您的當前目錄。 這會添加任何更改,包括該目錄中或該目錄下的所有已刪除文件 - 但不在父目錄中(這讓我咬了幾次)。
只是將其添加到舊答案中,因為我沒有看到建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.