如何在我的工作副本中排除非指数的变更?


当前回答

它甚至在常见的 git 许可之外的目录中工作。

sudo chmod -R 664 ./* && git checkout -- . && git clean -dfx

最近发生在我身上

其他回答

作为一个提醒,更新的版本的 git 有恢复命令,这也是一个建议,当你在更改文件时输入 git 状态时:

(使用“吉特添加......”更新什么将被承诺)

(使用“git restore...”来删除工作目录的更改)

所以 git'restore' 是这个问题的现代解决方案. 在输入 'git status' 后,从 git 阅读建议总是很好的想法 :-)

要删除未完成的更改,我试图“吉特恢复”我被吉特告诉,但它只是没有工作。

git revert --hard

它的 Git Help 完美地解释了这一点:

--hard 恢复指数和工作树. 在工作树中跟踪文件的任何变化,因为它们被删除. 在写任何跟踪文件的方式,任何未跟踪文件或目录都被删除。

PS:我使用 git 版本 2.35.3.windows.1. 我认为这里的一些答案使问题过于复杂。

git checkout -f


男子Git-Checkout:

F、 - 力量

在切换分支时,即使指数或工作树与头部不同,也会进行进展,用来消除当地的变化。

在从指数中查看路径时,不要错过未嵌入的输入;相反,未嵌入的输入被忽略。

在我看来,

git clean -df

应该做技巧. 如 Git 文档上 git clean

git-clean - 从工作树中删除未追踪的文件

描述

清理工作树通过重复删除不受版本控制的文件,从当前目录开始. 通常,只有未知的文件到 Git 被删除,但如果 -x 选项被指定,忽略的文件也被删除. 例如,这可以有用去除所有构建产品. 如果任何可选的... 论点被提供,只有这些路径被影响。

选项

cd path_to_project_folder  # take you to your project folder/working directory 
git checkout .             # removes all unstaged changes in working directory