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

时间:2017-04-04 05:31:01

标签: git github

我有一个本地目录,我已经初始化了git。我使用以下命令在git中添加了该目录的所有文件:

git add *

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

git add -A *

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

5 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分: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?

希望这有帮助!

答案 2 :(得分:0)

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

git rm filename

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

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

  

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

让我知道它是否有效!

答案 3 :(得分: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 .

希望这有帮助! :)

答案 4 :(得分:0)

对于大多数情况,我总是使用 git add -A .

注意 . 指定您的当前目录。这会添加任何更改,包括该目录中或该目录下的所有已删除文件 - 但不在父目录中(这让我难受了几次)。

只是将其添加到旧答案中,因为我没有看到建议。