git add *不添加已删除的文件

问题描述 投票:5回答:4

我有一个本地目录,我已初始化git。我在git中添加了该目录的所有文件:

git add *

现在,如果我从本地目录手动删除文件,我想从github中删除它。我试过了

git add -A *

但它不起作用。每次我都要从github手动删除它。

git github
4个回答
5
投票

问题是glob(*)是由你的shell而不是git扩展的,而shell对你已经删除的文件一无所知。没有任何参数的git add -A会添加所有文件,包括已删除的文件。 git add .也将在当前的git版本中执行此操作。您还可以将git rm --cached <file>用于其他答案中建议的单个文件。

通常使用git rm删除文件更容易,因为这将删除文件并删除删除文件。


3
投票

您应该使用“git rm”命令。 git rm / path / to / file

例如:转到你的git目录并输入 git rm file.txt

然后做一个git提交说: git commit -m“删除文件”

最后将您的更改推送到您的git存储库。一旦推送这些更改,该文件现在也将从您的存储库中删除。

关于堆栈溢出的早期帖子提供了更多信息:Git: why the file deletion does not sync?

希望这可以帮助!


0
投票

如果要从索引中删除文件,则应使用

git rm filename

文档可以在这里找到:https://git-scm.com/docs/git-rm

这个命令的一个重要注意事项是:

git rm不会从您的工作目录中删除文件。 (没有选项只能从工作树中删除文件并将其保留在索引中;如果要这样做,请使用/ bin / rm。)

如果有效,请告诉我!


0
投票

您唯一需要做的就是从本地存储库中删除文件,而不是从本地存储库中手动删除文件,

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 .

希望这可以帮助! :)

© www.soinside.com 2019 - 2024. All rights reserved.