是否有可能取消git中最后一个暂存(未提交)的更改?假设当前分支中有很多文件,有些是阶段性的,有些不是。在某个时刻,某个愚蠢的程序员不小心执行了:

git add -- .

...而不是:

git checkout -- .

这个程序员现在可以用一些神奇的git命令取消他最后的更改吗?或者他应该在一开始尝试之前就做出承诺?


当前回答

如果你想从git中删除所有添加的文件

git reset

如果要删除单个文件

git rm <file>

其他回答

我建议使用:

Git rm -r——cached <your_dir>或Git rm——cached <your_file>

它会还原你的

git add <your_dir_or_your_file>

回去,同时保持文件原样。

根据难度的大小和规模,您可以创建一个临时分支,并将当前的工作提交到那里。

然后切换到原始分支并签出,并从从头提交中选择适当的文件。

至少您将拥有当前和以前的状态的永久记录(直到您删除那个scratch分支为止)。

如果你想从git中删除所有添加的文件

git reset

如果要删除单个文件

git rm <file>

你可以使用git重置(见文档)

你可以使用git重置。这将“取消”你上次提交后添加的所有文件。

如果你只想取消一些文件,使用git reset——<file 1> <file 2> <file n>。

此外,还可以使用git reset -p取消文件中的一些更改。