簡體   English   中英

git add * 不添加刪除的文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM