Git:如何提交手动删除的文件? [复制]

Posted

技术标签:

【中文标题】Git:如何提交手动删除的文件? [复制]【英文标题】:Git: How to commit a manually deleted file? [duplicate] 【发布时间】:2012-10-10 20:58:54 【问题描述】:

在我的 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")

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

【问题讨论】:

你可以使用 git add -u 【参考方案1】:

我想答案是here。

不过,最好是git rm &lt;fileName&gt;

【讨论】:

是的,我知道我应该使用git rm,但rm 是我的习惯,所以有时我只是忘记使用git rm 啊,当然,我也会不时发生:) 答案是git add -ugit commit -a,还是git add -A? -1 表示混淆。 git rm 可以在rm 已经删除文件后使用。它只是更新本地存储库。【参考方案2】:

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

注意:对某些文件使用git rm

【讨论】:

如果有人只是想暂缓删除单个文件,我认为建议git add -A 不是一个好主意,因为这也会 (a) 暂缓对已跟踪文件的所有修改(b) 暂存未跟踪和未忽略的文件。您可能希望通过警告来更新您的答案。 另一方面,当您重构整个项目并移动/删除文件夹和文件时,您无法返回这样做,因为每个文件/文件夹都使用 git。 git add -A 应该是事件一命令。 @MarkLongair 现在你能告诉我们我们如何才能撤消这个错误:)【参考方案3】:

它在git status 的输出中说:

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

就这样吧:

git rm <filename>

【讨论】:

这很令人困惑:'use "git add/rm' - 这是什么?在这种情况下,两者之间有什么区别? 为什么不试试看呢?我认为你会发现这两种情况下的行为都很明智。 (“添加已删除的文件”和“删除已删除的文件”)

以上是关于Git:如何提交手动删除的文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不从磁盘中删除文件的情况下 git rm 文件? [复制]

如何从 Git 主分支中间删除一些提交? [复制]

Git中添加但未提交的已删除文件可以恢复吗? [复制]

如何从 git repo 中删除一个文件夹? [复制]

如何在保留更改的同时撤消最后一次 git 提交? [复制]

如何删除 Git 合并? [复制]