如何在我的工作副本中排除非指数的变更?
当前回答
2019年更新
您现在可以在一个跟踪文件中删除未完成的更改,使用:
git restore <file>
在当前目录中的所有跟踪文件中(重复)与:
git restore .
如果您将后者从存储库的根中运行,则将删除项目中的所有跟踪文件中的未进行的更改。
笔记
git restore 于 2019 年 7 月推出,并在 2.23 版本中发布,作为 git checkout 命令分成 git restore 文件和 git switch 分支的部分。 git checkout 仍然按照它所使用的方式行事,而旧的答案仍然是完美的。
其他回答
git checkout .
这将拒绝对分支的任何未经订购的变更,如果发生任何变更,它不会重新设置它,这是方便的,当你做了一些变更并决定你不想要它们,因为某种原因,你没有承诺这些变更,它实际上只是重新检查分支,并拒绝任何当前未经订购的变更。
(必須在應用程式的根或家指,以便工作)
cd path_to_project_folder # take you to your project folder/working directory
git checkout . # removes all unstaged changes in working directory
我真的觉得这篇文章有用来解释什么时候使用什么命令: http://www.szakmeister.net/blog/2011/oct/12/reverting-changes-git/
有几个不同的案例:
如果您没有下载文件,则使用 git checkout. Checkout “更新工作树中的文件以匹配指数中的版本”。 如果文件没有下载(因此添加到指数)... 这个命令将基本上将文件转换为您最后的承诺。
我怀疑使用 git stash 是很受欢迎的选择,因为它有点不那么危险. 你总是可以回到它,如果你偶然在使用 git reset 时跳过太远。
请参见上面的文章以获得更多建议。
尝试了上面的所有解决方案,但仍然无法摆脱新的,未完成的文件。
使用 git clean -f 删除这些新文件 - 但是要小心! 注意力选项。
当您输入 git 状态时(使用“git checkout -...”来删除工作目录的变更)显示。
上一篇:Git Checkout
推荐文章
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支