我该如何撤回最近一次提交之后对目录做出的每一个更改,包括删除添加的文件、重置修改过的文件以及恢复已删除的文件?
我该如何撤回最近一次提交之后对目录做出的每一个更改,包括删除添加的文件、重置修改过的文件以及恢复已删除的文件?
首先,重置任何更改
这将撤销您对已跟踪文件所做的任何更改并恢复删除的文件:
git reset HEAD --hard
第二步,删除新文件
这将删除自上次提交以来添加的任何新文件:
git clean -fd
由于 .gitignore
文件的存在,未被跟踪的文件将被保留,它们不会被删除。
警告:使用 -x
而不是 -fd
将删除被忽略的文件。你可能不想这样做。
git clean
命令的 -x
选项,它可以让该命令同时移除被忽略的文件。 - Cascabelgit clean -fd
命令。 - bitsoflogicgit clean -fd
不会删除被忽略的文件,需要添加-x
参数。 - Robert Siemer如何撤销最近一次提交后对目录所做的每个更改,包括删除添加的文件、重置修改的文件和重新添加已删除的文件?
您可以使用以下命令来撤销对 已跟踪 文件的更改:
git reset HEAD --hard
您可以使用以下命令删除 未被跟踪的 文件:
git clean -f
您可以通过以下方式删除未跟踪的文件和目录:
您可以使用以下命令删除 未跟踪的 文件和目录:
git clean -fd
但是您不能撤销对未跟踪文件所做的更改。
您可以删除忽略和未跟踪的文件和目录
git clean -fdx
但是您无法撤消对已忽略文件的更改。
您还可以将clean.requireForce
设置为false
:
git config --global --add clean.requireForce false
当您使用git clean
命令时,为避免使用-f
(--force
)选项,请注意。
git push -f
与这个问题无关,在这种情况下是危险的。 - mustache1up