当我运行'git checkout'时,我也想删除提交后创建的所有其他文件。在Git下恢复
但我找不到方法。这是我测试的东西,
我创建了一个目录test
,并在我提交后创建了一个文件test/test.txt
。
然后我跑git add .
和git checkout
,但新的文件和目录未删除。
为什么新的文件,即使我把命令git checkout
为回滚仍然存在吗?
我怎样才能回到舞台完全?
谢谢您的时间和阅读我的问题。
当我运行'git checkout'时,我也想删除提交后创建的所有其他文件。在Git下恢复
但我找不到方法。这是我测试的东西,
我创建了一个目录test
,并在我提交后创建了一个文件test/test.txt
。
然后我跑git add .
和git checkout
,但新的文件和目录未删除。
为什么新的文件,即使我把命令git checkout
为回滚仍然存在吗?
我怎样才能回到舞台完全?
谢谢您的时间和阅读我的问题。
退房此线程:How do I revert all local changes in Git managed project to previous state?
由于Thr4wn笔记,git reset --hard
将解决您的特定问题。但是,正如上面链接的线程所指出的那样,它不会删除未跟踪的文件:它仅仅因为您之前运行过git add而删除了第二个文件。
git clean -fd
似乎是删除您提交之后添加的一切(这意味着你将失去所有这些文件)的解决方案。
'git clean -fd'正是我一直在寻找的!谢谢!但是人们并不经常使用这个命令? – user1350338
没问题。命令删除的文件会永久删除,所以我想这不是常用的。我个人从来没有使用它。 –
BE CARFUL,以确保我第一次明白你的问题,但我相信,
git reset --hard
是你正在寻找的命令。
此命令的作用是:不可逆地擦除自上次提交以来所做的所有更改。
GIT的独特和有用的方面之一是你有一个存储库和一个工作目录,他们不需要是相同。作为一名开发人员,您经常会同时发生多件事情。准备提交的一对文件;一对夫妇档案几乎准备好了,一对夫妇档案在那里进行测试,几个档案和一些笔记/想法等等。有了GIT,你可以决定你想要保存什么以及什么时候保存。添加并提交你想要的。处理其他内容,添加和提交。等等。如果让你的东西的过程中犯你最终得到的东西,你不需要,那么有一个简单的解决方案:
git status
rm <trash>
的“git的状态”可以让你看到很清楚你已经什么由决定不添加创建。而'rm trash'摆脱了被证实垃圾的东西。
两个步骤比一个更好。
你的问题有点不清楚,你应该尽量让事情更清楚。如果您正在使用教程,请告诉我们您卡在哪里。如果没有,也许你应该阅读一个。 – Simon