提交后Git仍显示已删除的文件

80

如何从我的Git仓库中删除已删除的文件?

我删除了一个JavaScript库的文件夹,其中包含许多文件。然后我进行了提交更改的操作,如下所示:

git add .
git commit "message"
git status

但它将这些文件都显示为“已删除....”。

我该如何让它们消失?


可能是重复的问题:如何在Git中提交所有已删除的文件? - Ben
8个回答

150

这将同时添加删除操作。

git add -u .

使用以下命令检查要提交的内容:

git status

git status显示一个文件已被删除,但它仍然存在于本地存储中。运行git add不会重新添加该文件,而是将更改暂存以进行永久性提交。如何修改git自动检测到的更改? - fIwJlxSzApHEZIl
1
这应该是被接受的答案!对我的问题起到了完美的作用。 - PlunkettBoy
完美的答案。谢谢。 - badhanganesh
1
正是我所需要的。干得好,Jamund Ferguson! - Abdul Salam
没有点号(.)对我起作用。 - dz902

41
如果它在“待提交”部分列出了这些文件,那么可以继续提交; 这些文件将保持删除状态。(Git也会跟踪删除,不仅仅是更改)
如果它在“已更改但未更新”部分列出了这些文件,则有两个选项:
1. 通过还原索引中的版本来取消删除它们:git checkout path/to/folder 2. 在Git中标记它们为已删除状态,然后进行提交:git rm -r path/to/folder

2
我明白了,如果我删除了分散在不同文件夹中的多个(很可能达到数十个)小文件,我是否需要为每个文件执行git rm命令?有没有快捷方式?谢谢。 - Nik So
6
假设你没有其他需要暂存的更改,或者不介意暂存它们,git add -u 命令将一次性暂存所有删除的文件。 - cdhowie

23

git add -u .

如果你运行 git status 命令后显示 up to date,但是红色文字中显示:

deleted: folder/example0.jpg
deleted: folder/example1.jpg
deleted: folder/example2.jpg

那么你需要输入以下命令以永久移除这些文件:git add -u .。然后所有的红色文字都会变为绿色。

**** 别忘了在字母u句号之间保留空格。

2
完美地描述并且正是我正在寻找的。 - WpTricks24

8

您需要记录它们确实应该被删除。记录方式与文件更改相同。

只需使用git rm,而不是git add即可。


2

你需要告诉 Git 它已被移除

git rm folder

如果您不想将它们保留在代码仓库中,您可以将它们添加到.gitignore文件中。


1
当我从“upstream/master”进行“pull”操作时,我发现我的删除文件变成了红色。我尝试了不同的方法,但都没有起作用。最终,我不得不还原我的分叉分支的所有更改(已提交、暂存、未暂存),并重新将我的存储库与上游主分支同步。
git reset --hard upstream/master
git pull upstream master

0

我发现在删除一些本地文件时,意外地出现了一个“已删除”文件夹。

我首先创建了一个临时分支并提交了不需要的“已删除”文件夹,然后删除了该临时分支。


0
假设你想要删除一个文件,但不希望它被提交:
使用以下命令:
git reset HEAD 文件名
然后执行 git status 命令,以验证要删除的文件是否未出现。
接着执行 git commit 命令。

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