当我运行'git checkout'时,我还想删除提交后创建的所有其他文件。
但我找不到路。这是我测试的东西,
我提交了一个目录test
并创建了一个文件test/test.txt
。
然后我运行git add .
和git checkout
,但新文件和目录未被删除。
为什么新文件仍然存在,即使我将命令git checkout
作为回滚?
如何完全回到舞台 ?
感谢您抽出宝贵时间阅读我的问题。
答案 0 :(得分:5)
查看此主题:How do I revert all local changes in Git managed project to previous state?
正如Thr4wn所说,git reset --hard
将解决您的特定问题。但是,正如上面链接的线程所述,它不会删除未跟踪的文件:它只删除你的第二个文件,因为你以前运行过git add。
git clean -fd
似乎是删除提交后添加的所有内容的解决方案(这意味着您将丢失所有这些文件)。
答案 1 :(得分:1)
要确保我首先理解你的问题,但我相信
git reset --hard
您正在寻找的命令。
此命令的作用是不可逆转地删除自上次提交以来所做的所有更改。
答案 2 :(得分:0)
GIT的一个独特而有用的方面是你有一个存储库和一个工作目录,而且不需要相同。作为开发人员,您经常会同时发生多种事情。一对准备提交的文件;几个文件几乎准备好了,一些文件用于测试,一些文件带有一些注释/想法等等。通过GIT,您可以决定要保存什么以及何时保存。添加并提交您想要的内容。处理其他事情,添加和提交。等等。如果在提交你的东西的过程中你最终得到了你不需要的东西,那么就有一个简单的解决方案:
git status
rm <trash>
'git status'可让您看到非常清楚您决定不添加的内容。并且'rm trash'摆脱了被证实为垃圾的东西。
两步优于一步。