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


当前回答

git checkout -f


男子Git-Checkout:

F、 - 力量

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

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

其他回答

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

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

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

git checkout .

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

git checkout-index -a -f

在我看来,

git clean -df

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

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

描述

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

选项

因为没有答案表明我所使用的准确选项组合,这里是:

git clean -dxn .  # dry-run to inspect the list of files-to-be-removed
git clean -dxf .  # REMOVE ignored/untracked files (in the current directory)
git checkout -- . # ERASE changes in tracked files (in the current directory)

以下是使用的 git 清洁选项的在线帮助文本:

D

除未追踪的目录外,除未追踪的文件外,除未追踪的目录外,除未追踪的目录外,除非由另一个 Git 存储库管理,则不会默认删除。

x

不要使用从.gitignore (每个目录) 和 $GIT_DIR/info/exclude 阅读的默认忽略规则,但仍然使用与 -e 选项提供的忽略规则. 这允许删除所有未追踪的文件,包括构建产品。

N

实际上不要删除任何东西,只是显示会做什么。

F

如果 Git 配置变量 clean.requireForce 不被设置为虚假, Git clean 将拒绝删除文件或目录,除非 -f、 -n 或 -i. Git 将拒绝删除.git 子目录或文件中的目录,除非另一个 -f 被提供。

当您输入 git 状态时(使用“git checkout -...”来删除工作目录的变更)显示。

上一篇:Git Checkout