如何清除所有本地Git更改并恢复到旧提交?

3
所以这里的情景是,我有一个项目,其中有许多次提交,最近我安装了一堆新包并将它们初始化。
我已经进行了这些更改的提交(还没有推送),但随后意识到我忘记测试核心组件了。测试失败了,现在我的代码一团糟,我的项目无法构建,我无法解决它。
我可以选择前一个提交并检出它,这会还原任何更改的文件,但是任何由新包添加的文件仍然存在。
是否有任何方法可以清除所有内容,并使我的工作副本与我的某个提交完全相同?

你听说过 reset --hard 吗?听起来可能是你需要的。在使用之前一定要先了解它。 - Tim
2个回答

8

git reset --hard <good commit>命令会将工作副本中的所有已跟踪文件重置为指定提交。

git clean -df命令会从你的工作目录中清除未被跟踪的文件,-d选项还会删除未被跟踪的目录。

请小心使用这两个命令。


0
感谢 @Tim Castelijns 的提醒。
git reset --hard <commit number>

将您当前的分支重置为,并使您工作树中的文件与中的版本相同

但是,您仍将保留所有未跟踪的文件。

git clean -f

将会删除所有未被追踪的文件,所以您的工作副本和最新提交应该完全匹配


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接