当我运行“git checkout”时,我还想删除提交后创建的所有其他文件。
但我找不到路。这是我测试的东西,
我在提交后创建了一个目录test
并创建了一个文件test/test.txt
。
然后我运行git add .
and git checkout
,但是新的文件和目录没有被删除。
为什么即使我将命令git checkout
作为回滚,新文件仍然存在?
怎样才能完全回到舞台?
感谢您抽出宝贵时间阅读我的问题。
当我运行“git checkout”时,我还想删除提交后创建的所有其他文件。
但我找不到路。这是我测试的东西,
我在提交后创建了一个目录test
并创建了一个文件test/test.txt
。
然后我运行git add .
and git checkout
,但是新的文件和目录没有被删除。
为什么即使我将命令git checkout
作为回滚,新文件仍然存在?
怎样才能完全回到舞台?
感谢您抽出宝贵时间阅读我的问题。
查看此线程:如何将 Git 托管项目中的所有本地更改恢复到以前的状态?
正如 Thr4wn 所指出的,git reset --hard
它将解决您的特定问题。但是,如上面链接的线程中所述,它不会删除未跟踪的文件:它仅删除您的第二个文件,因为您之前运行过 git add 。
git clean -fd
似乎是删除您在提交后添加的所有内容的解决方案(这意味着您将丢失所有这些文件)。
请小心确保我首先理解您的问题,但我相信
git reset --hard
是您要查找的命令。
该命令的作用是不可逆转地擦除您自上次提交以来所做的所有更改。
GIT 的独特和有用的方面之一是您有一个存储库和一个工作目录,它们不需要相同。作为开发人员,您经常会同时发生多件事情。几个准备提交的文件;几个文件几乎准备好了,几个文件在那里进行测试,几个文件带有一些注释/想法等。使用 GIT,您可以决定要保存什么以及何时保存。添加并提交您想要的内容。处理其他事情,添加并提交。等等。如果在提交你的东西的过程中你最终得到了你不需要的东西,那么有一个简单的解决方案:
git status
rm <trash>
'git status' 让您可以非常清楚地看到您决定不添加所创建的内容。并且“rm垃圾”摆脱了被确认为垃圾的东西。
两步总比一步好。