如何在我的工作副本中排除非指数的变更?
当前回答
要做永久漏洞: git reset --hard
保存更改以后: git stash
其他回答
看起来完整的解决方案是:
git clean -df
git checkout -- .
警告:虽然它不会删除在.gitignore 中直接提到的无视文件,但 git clean -df 可能会删除在文件夹中居住的无视文件。
git clean 删除所有未跟踪的文件, git checkout 清除所有未跟踪的更改。
最简单的方式是使用这个命令:
此命令用于排除工作目录的变更 -
git checkout -- .
首頁 〉外文書 〉文學 〉文學 〉HTTPS://git-scm.com/docs/git-checkout
在 git 命令中,未追踪文件的存储是通过使用:
git stash -u
HTTP://git-scm.com/docs/git-stash
如果所有的步骤文件实际上已经完成,那么分支可以简单地重新设置,例如从您的GUI,大约有三个鼠标点击:分支,重新设置,是的!
因此,我经常在实践中做的事情,以逆转不需要的地方变化,就是承诺所有的好事,然后重新设置分支。
如果好事是在单一的承诺中承诺,那么你可以使用“修改最后的承诺”将其带回被推翻或不推翻,如果你最终想承诺它有点不同。
这可能不是你正在寻找问题的技术解决方案,但我认为这是一个非常实用的解决方案. 它允许你选择性地排除未完成的变化,重新调整你不喜欢的变化,并保持你所做的变化。
因此,简而言之,我只是承诺,分支重新设置,并修改最后的承诺。
对于当前工作目录使用中的所有未输入的文件:
git restore .
对于特定文件的使用:
git restore path/to/file/to/revert
这与 git 交换器一起取代了过度加载的 git 支票(见这里),从而取消了论点的分歧。
如果一个文件既有步骤和未步骤的变化,则仅在 git diff 中显示的未步骤的变化将被转换。
之前 Git 2.23
对于当前工作目录中的所有未输入的文件:
git checkout -- .
对于一个特定的文件:
git checkout -- path/to/file/to/revert
在这里消除双重性(这被称为论点不双重性)。
它甚至在常见的 git 许可之外的目录中工作。
sudo chmod -R 664 ./* && git checkout -- . && git clean -dfx
最近发生在我身上
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别