【发布时间】:2021-01-19 16:14:01
【问题描述】:
我做了git reset HEAD -- "*user*"(从暂存区域中删除所有“用户”文件)但现在 git 不知何故认为我想删除一个完全不同的文件,我最近什至没有碰过(该文件还在我的文件夹)。 git status 现在显示给我:
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: webpack.config.js
我不想删除这个文件。所以我想从舞台和索引中删除删除。
我尝试了我在 StackOverflow 上找到的以下所有命令,但这些命令都不起作用...(我当然在每个命令后检查了 git status,但删除仍然存在):
git restore --staged webpack.config.js
git restore webpack.config.js
git reset HEAD webpack.config.js
git reset -- webpack.config.js
git checkout HEAD -- webpack.config.js
git checkout HEAD webpack.config.js
git checkout -- webpack.config.js
git add webpack.config.js
git rm --cached webpack.config.js
在某一时刻,我还尝试了 git checkout .,它删除了我所有未暂存的更改...(我能够通过为我的 IDE 中的每个文件发出 undo 命令来恢复更改)。
我还尝试使用 SourceTree 取消暂存删除:
但这也行不通。
那么从暂存区删除文件的正确方法是什么(但保留更改)?
【问题讨论】:
-
你能不能不简单地再次暂存那个未暂存的文件?看起来它已经创建并添加,然后暂存,所以取消暂存是为了 git 从技术上删除。
-
@TheFool 我刚刚做了:
git add webpack.config.js- 仍然被删除。 -
我想你想说的是
git rm --cached。我不确定你从哪里得到这个reset用法。 -
所以你说你已经尝试了一堆命令,但没有一个成功..
git有没有说什么? -
@matt 我刚刚做了
git rm --cached webpack.config.js,然后该文件还出现在未跟踪的文件下,但在舞台区域中仍然被删除。所以我也再次尝试git add webpack.config.js,它已经在未跟踪的文件下,但它仍然显示为已删除。