如何解决摆脱跟踪和未跟踪的更改并返回到以前的状态
如果在做了git status
之后我有
摆脱这些的正确方法是什么。更明确地说,我希望我的文件与更改或删除新文件之前完全一样。
(考虑到我可能还暂存了我想提交的文件)
解决方法
要删除未跟踪的文件,请使用 git clean
。请注意,此操作无法被 Git 撤消(您的操作系统可能会或可能不会提供一些恢复已删除文件的方法,但根据定义,未跟踪文件是,不在 Git 的索引中,这通常意味着它根本不在 Git 中,因此 Git 无法将其取回)。
要删除带有 git clean
的文件,您必须使用 -f
选项。这将删除一些未跟踪的文件,但不会删除未跟踪和忽略的文件。要删除这些文件,也可以使用 -x
选项。要删除清空的目录,也请添加 -d
选项:
git clean -dfx
删除那些根本不在 Git 中的文件后,您可以使用 git reset --hard commit
将当前分支名称移动到指定的提交和检查该提交,或 git reset --hard
将当前分支名称保留在原处,但重新设置文件的所有索引和工作树副本以匹配当前提交。或者,您可以使用 git checkout -f --detach commit
强制检查给定的提交,覆盖通常的检查以确保这不会丢弃修改后的文件。 --detach
状态会导致 HEAD 分离,即使您使用分支名称来选择提交也是如此。
这样做很少是一个好主意,但特殊情况确实会发生。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。