标签: git atlassian-sourcetree
所以这是场景,我有一个项目有很多提交,最近我为我的项目安装了一大堆新包并启动它们。
我去做了这些改变(没有推动),但后来意识到我忘了测试一个核心组件。测试失败了,现在我的代码乱七八糟,我的项目无法构建,我无法解决它。
我可以选择之前的提交并将其签出,这会恢复所有已更改的文件,但新包添加的任何文件仍然存在。
无论如何要清除这个地段,让我的工作副本与我的一个提交相同吗?
答案 0 :(得分:6)
git reset --hard <good commit>将reset来自您工作副本的所有跟踪的文件。
git reset --hard <good commit>
git clean -df将clean来自未跟踪的文件的工作目录。 -d将删除未跟踪的目录。
git clean -df
-d
小心使用这两种方法。
答案 1 :(得分:0)
感谢@Tim Castelijns的推动
git reset --hard <commit number>
将当前分支重置为,然后使工作树中的文件与
你仍然会留下所有未跟踪的文件,但是
git clean -f
将删除所有未跟踪的文件,因此您的工作副本和最新提交现在应完全匹配