在Git中撤消更改(暂存和未暂停)的最快方法是什么?
两个文件都未分页。
$ git status -s
M file1.txt # unstaged
?? oops.txt # unstaged
一个文件暂存,一个文件未分级。
$ git status -s
M file1.txt # staged
?? oops.txt # unstaged
我可以add
全部索引,然后stash
save
和drop
。
$ git add .
$ git stash save
$ git stash drop
$ git status
nothing to commit, working directory clean
有更快的方法吗?
答案 0 :(得分:30)
您需要使用两个命令:git reset --hard
和git clean -fd
。git reset --hard
将撤消所有暂存的更改和git clean -fd
,非暂存更改(文件和目录)。您可以创建一个将执行这两个命令的别名。为此,只需在.gitconfig
中添加以下行:
[alias]
undo = '!git reset --hard && git clean -fd'
答案 1 :(得分:23)
git reset HEAD
git checkout .
git reset HEAD
将取消所有更改,git checkout .
会丢弃所有更改。
答案 2 :(得分:6)
您可以使用git clean
$ git status -s ?? oops.txt $ git clean -f Removing oops.txt $ git status -s
更多信息:
通过递归删除不是的文件来清理工作树 在版本控制下,从当前目录开始。
答案 3 :(得分:0)
要取消暂存所有暂存文件,请使用命令:
git reset HEAD
要取消暂存单个文件暂存文件(例如:app.js),请使用命令:
git reset HEAD app.js
在 Git 版本 2.23.0 中引入了一个新命令 git restore
。
要取消暂存文件,请使用:
git restore --staged app.js
此命令将从暂存区中删除文件并将其移回工作目录并保持更改不变。
要撤消文件中的更改并将其恢复为原始内容,请使用:
git restore app.js
注意:您将丢失自上次提交以来所做的所有更改。