清理Git中未暂存的已删除文件的简单方法

清理Git中未暂存的已删除文件的简单方法,git,Git,我经常使用IDE或通过命令行(而不是通过git mv)移动git存储库中的文件 因此,在我下一次提交时,我将删除几个未老化的文件,如下所示: # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: test.html # # Changes not staged for commit: # (use "git ad

我经常使用IDE或通过命令行(而不是通过git mv)移动git存储库中的文件

因此,在我下一次提交时,我将删除几个未老化的文件,如下所示:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   test.html
#
# 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:    css/bootstrap.css
#   deleted:    css/bootstrap.min.css
#   deleted:    img/glyphicons-halflings-white.png
#   deleted:    img/glyphicons-halflings.png
#   deleted:    js/bootstrap.js
#   deleted:    js/bootstrap.min.js
然后我把它扔回控制台


有没有一种不必复制/粘贴的方法可以做到这一点?

如果我正确理解了您的问题,您希望提交您的删除操作…也就是说,您希望对显示为已删除的所有文件执行等效的
git rm
git clean
不会执行此操作

您可以运行git add-u:

仅与索引中已跟踪的文件匹配 而不是工作树。这意味着它永远不会上演新的一幕 文件,但它将暂存已修改的跟踪文件的新内容 如果相应的 已删除工作树中的文件

这将拾取对跟踪文件的所有更改,包括删除。所以如果你从这个开始:

# 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:    file2
#   deleted:    file3
#   deleted:    file4
#   deleted:    file5

此时提交将做正确的事情。

git add-u
将更新跟踪文件的状态。

我通常会提交我所做更改的文件

如果我删除了冗余文件,我会在这之后执行以下操作:

git commit -a -m 'deleted redundant files'

“git add-A”是否也适用于此?您好,您说“此时提交将做正确的事情”。但在我的例子中,它显示错误:提交失败,错误为0个文件提交,4个文件提交失败:提交删除的文件无法索引文件web/bundles/app更新文件failedHi@ZainElabidine。您可能想提出一个新问题,因为为了弄清楚发生了什么,我需要查看您正在运行的确切命令以及不同点上的
git status
输出(注释确实不是一个好地方)。
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    file2
#   deleted:    file3
#   deleted:    file4
#   deleted:    file5
git commit -a -m 'deleted redundant files'