【发布时间】:2010-11-29 20:22:03
【问题描述】:
如何从我的 Git 存储库中删除已删除的文件?
我删除了一个包含许多文件的 JavaScript 库文件夹。然后我像这样提交更改:
git add .
git commit "message"
git status
但它会将所有这些文件显示为“已删除......”。
我怎样才能让它们消失?
【问题讨论】:
标签: git git-commit
如何从我的 Git 存储库中删除已删除的文件?
我删除了一个包含许多文件的 JavaScript 库文件夹。然后我像这样提交更改:
git add .
git commit "message"
git status
但它会将所有这些文件显示为“已删除......”。
我怎样才能让它们消失?
【问题讨论】:
标签: git git-commit
这也会添加删除。
git add -u .
检查要提交的内容:
git status
【讨论】:
如果它列出了“待提交”部分下的文件,则继续提交;文件将保持删除状态。 (Git 也跟踪删除,而不仅仅是更改。)
如果它列出了“已更改但未更新”部分下的文件,那么您有两种选择:
git checkout path/to/folder
git rm -r path/to/folder
【讨论】:
git add -u 将立即暂存所有删除。
git add -u .
如果你输入 git status 并且结果显示 up to date,但它显示为红色
已删除:文件夹/example0.jpg
已删除:文件夹/example1.jpg
已删除:文件夹/example2.jpg
您需要输入此内容才能将其永久删除git add -u .
那么所有的红色文本都将被标记为绿色。
**** 不要忘记字母 u 和 句号
【讨论】:
您需要记录它们确实是要被删除的。与记录文件更改的方式相同。
您将使用git rm,而不是git add。
【讨论】:
你需要告诉 git 它被移除了
git rm folder
或者如果您不想将它们保留在 repo 中,您可以将它们添加到 .gitignore
【讨论】:
假设你想删除一个文件并且不希望它被提交:
使用命令:
git 重置 HEAD 文件名
然后执行 git status 来验证要删除的文件是否没有出现
然后执行 git commit
【讨论】:
在我“rm xxx”删除一些本地文件后,我发现自己有一个意外的“已删除”文件夹。
我首先创建一个临时分支并提交不需要的“已删除”文件夹,然后删除该临时分支。
【讨论】:
当我从upstream/master 获取pull 时,我也有红色的已删除文件。我尝试了不同的方法,但没有任何效果。
最终,我不得不为我的分叉分支恢复所有更改(已提交、暂存、未暂存),并且必须将我的 repo 与上游 master 分支重新同步。
git reset --hard upstream/master
git pull upstream master
【讨论】: