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


当前回答

git clean -df

清理工作树,重复删除不受版本控制的文件,从当前目录开始。

D:除了未追踪的文件之外,还可以删除未追踪的目录

-f: 力量(可能不需要根据 clean.requireForce 设置)

Run git help clean 查看手册

其他回答

我有一個奇怪的情況,在那裡一個檔案總是無關,這有助於我解決。

git rm.gitattributes git add -A git reset --hard

它检查了当前目录的当前指数,从当前目录向下将文件中的所有变化抛弃。

git checkout .

或此,检查所有文件从指数,过写工作树文件。

git checkout-index -a -f

我真的觉得这篇文章有用来解释什么时候使用什么命令: http://www.szakmeister.net/blog/2011/oct/12/reverting-changes-git/

有几个不同的案例:

如果您没有下载文件,则使用 git checkout. Checkout “更新工作树中的文件以匹配指数中的版本”。 如果文件没有下载(因此添加到指数)... 这个命令将基本上将文件转换为您最后的承诺。

我怀疑使用 git stash 是很受欢迎的选择,因为它有点不那么危险. 你总是可以回到它,如果你偶然在使用 git reset 时跳过太远。

请参见上面的文章以获得更多建议。

看起来完整的解决方案是:

git clean -df
git checkout -- .

警告:虽然它不会删除在.gitignore 中直接提到的无视文件,但 git clean -df 可能会删除在文件夹中居住的无视文件。

git clean 删除所有未跟踪的文件, git checkout 清除所有未跟踪的更改。

git checkout -f


男子Git-Checkout:

F、 - 力量

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

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