我如何抛弃工作副本中未在索引中的更改?
要删除未提交的更改,我尝试了 Git 命令 "git restore .",但它并没有起作用。一个非常好的方法是使用:
git revert --hard
它完美地运行。它的Git帮助完美地解释了这一点:
--hard 重置索引和工作树。自从上次提交以来,对工作树中已跟踪文件的任何更改都将被丢弃。任何位于写入任何已跟踪文件路径上的未跟踪文件或目录将被简单地删除。
附注:我正在使用git版本2.35.3.windows.1。我认为这里有很多回答把问题复杂化了。
git revert --hard
这样的命令。显然你想要的是像 VonC 建议的 git reset --hard
。这将不可撤销地丢失暂存的更改——你不应该在没有明确警告的情况下引导用户这样做。 - LarsH
git-clean
只会从工作树中删除未被跟踪的文件。详见 https://git-scm.com/docs/git-clean。 - Yegagit-clean -df
可能会很危险。它会删除本地未被跟踪的文件(例如由.gitignore
覆盖的文件)。请仔细阅读以下所有内容,并考虑使用git checkout .
代替。 - jacanterburygit status
命令会提供建议,告诉你如何操作!执行git checkout -- .
命令即可。 - Paulogit status
建议使用git restore
命令来达到相同的目的,这是一个新的命令。请参考我的2019更新。 - prosoitos