如何在我的工作副本中排除非指数的变更?
当前回答
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