如何删除所有本地git更改并恢复旧提交?

时间:2015-07-27 08:35:07

标签: git atlassian-sourcetree

所以这是场景,我有一个项目有很多提交,最近我为我的项目安装了一大堆新包并启动它们。

我去做了这些改变(没有推动),但后来意识到我忘了测试一个核心组件。测试失败了,现在我的代码乱七八糟,我的项目无法构建,我无法解决它。

我可以选择之前的提交并将其签出,这会恢复所有已更改的文件,但新包添加的任何文件仍然存在。

无论如何要清除这个地段,让我的工作副本与我的一个提交相同吗?

2 个答案:

答案 0 :(得分:6)

git reset --hard <good commit>reset来自您工作副本的所有跟踪的文件。

git clean -dfclean来自未跟踪的文件的工作目录。 -d将删除未跟踪的目录。

小心使用这两种方法。

答案 1 :(得分:0)

感谢@Tim Castelijns的推动

git reset --hard <commit number>

将当前分支重置为,然后使工作树中的文件与

中的版本相同

你仍然会留下所有未跟踪的文件,但是

git clean -f

将删除所有未跟踪的文件,因此您的工作副本和最新提交现在应完全匹配