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


当前回答

git clean -df

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

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

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

Run git help clean 查看手册

其他回答

git clean -df

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

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

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

Run git help clean 查看手册

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

有几个不同的案例:

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

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

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

另一种方法来摆脱新的文件,比 git 清洁 -df 更具体(它将允许你摆脱一些文件不一定全部),是将新文件添加到指数,然后插入,然后放下插入。

这种技术是有用的,因为某种原因,你不能轻松地通过某种普通的机制(如rm)删除所有未追踪的文件。

尝试了上面的所有解决方案,但仍然无法摆脱新的,未完成的文件。

使用 git clean -f 删除这些新文件 - 但是要小心! 注意力选项。

另一种更快的方式是:

git stash save --keep-index --include-untracked

你不需要包含 - 包括 - 不被吸引,如果你不想仔细了解它。

接下来,你可以用 git stash drop 命令放下这个 stash 如果你愿意。