我有一个本地目录,我已经初始化了git。我使用以下命令在git中添加了该目录的所有文件:
git add *
现在,如果我从本地目录手动删除文件,我想从github中删除它。我试过了
git add -A *
但它不起作用。每次我都要从github手动删除它。
答案 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 .
。
注意 .
指定您的当前目录。这会添加任何更改,包括该目录中或该目录下的所有已删除文件 - 但不在父目录中(这让我难受了几次)。
只是将其添加到旧答案中,因为我没有看到建议。