如何在我的工作副本中排除非指数的变更?
当前回答
另一种方法来摆脱新的文件,比 git 清洁 -df 更具体(它将允许你摆脱一些文件不一定全部),是将新文件添加到指数,然后插入,然后放下插入。
这种技术是有用的,因为某种原因,你不能轻松地通过某种普通的机制(如rm)删除所有未追踪的文件。
其他回答
我真的觉得这篇文章有用来解释什么时候使用什么命令: http://www.szakmeister.net/blog/2011/oct/12/reverting-changes-git/
有几个不同的案例:
如果您没有下载文件,则使用 git checkout. Checkout “更新工作树中的文件以匹配指数中的版本”。 如果文件没有下载(因此添加到指数)... 这个命令将基本上将文件转换为您最后的承诺。
我怀疑使用 git stash 是很受欢迎的选择,因为它有点不那么危险. 你总是可以回到它,如果你偶然在使用 git reset 时跳过太远。
请参见上面的文章以获得更多建议。
它检查了当前目录的当前指数,从当前目录向下将文件中的所有变化抛弃。
git checkout .
或此,检查所有文件从指数,过写工作树文件。
git checkout-index -a -f
git checkout .
这将拒绝对分支的任何未经订购的变更,如果发生任何变更,它不会重新设置它,这是方便的,当你做了一些变更并决定你不想要它们,因为某种原因,你没有承诺这些变更,它实际上只是重新检查分支,并拒绝任何当前未经订购的变更。
(必須在應用程式的根或家指,以便工作)
要做永久漏洞: git reset --hard
保存更改以后: git stash
如果您处于子模块的情况下,没有其他解决方案工作,请尝试:
查看问题是什么(可能是一个“脏”案例)使用: git diff 删除 stash git 子模块更新
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别