Git:如何提交手动删除的文件?

114

在我的Git代码库中,我手动删除了一个文件(使用rm命令)并将其移动到另一个文件夹中。然后我提交了所有更改到我的代码库,但是现在当我运行git status .命令时...

ronnie@ronnie:/home/github/Vimfiles/Vim$ git status .
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       deleted:    plugin/dwm.vim
#
no changes added to commit (use "git add" and/or "git commit -a")

现在,我应该如何提交(commit)以便从我的远程仓库的插件文件夹中删除dwm.vim。我知道我必须使用git add && git commit,但是因为/plugin/dwm.vim已经被删除了,所以我没有要提交/添加的文件。


4
你可以使用 git add -u。 - Knase
3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
139
答案在这里我想。 不过最好使用git rm <fileName>

8
我知道应该使用git rm,但因为习惯于使用rm,有时会忘记使用git rm - ronnie
1
啊,没问题,这种情况我也会遇到的 :) - s.m.
4
应该使用哪个命令:git add -ugit commit -a 还是 git add -A?-1 表示困惑。 - Cees Timmerman
6
git rm 可以在文件已被 rm 删除后使用,它只是更新本地仓库。 - ergohack
git add <缺失文件的文件夹路径> - RicardoVallejo

101

使用git add -A,这将包括已删除的文件。

注意:这也会添加目录中尚未在存储库中的所有文件。

备注:对于某些文件,请使用git rm


52
如果有人只是想要删除单个文件,我认为不建议使用git add -A命令,因为它会将所有已跟踪文件的修改和未跟踪或未被忽略的文件都加入到提交暂存区中。你可能需要在回答中添加一个警告。 - Mark Longair
另一方面,当您重构整个项目并移动/删除文件夹和文件时,您无法仅针对每个文件/文件夹使用git进行撤消。 git add -A 应该是一个命令事件。 - hephestos
1
@MarkLongair现在你能告诉我们如何撤销这个错误吗 :) - NONONONONO

32

git status的输出中,它就在那里说:

#   (use "git add/rm <file>..." to update what will be committed)

所以只需执行以下操作:

git rm <filename>

4
这很令人困惑:“使用“git add / rm”——是哪一个?在这种情况下,这两者有什么区别? - Bobby Jack
为什么不试试它们,看看会发现什么呢?我认为您会发现这两种情况下的行为都非常明智。(“添加已删除的文件”和“移除已删除的文件”) - Kache

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,