2

当我运行“git checkout”时,我还想删除提交后创建的所有其他文件。

但我找不到路。这是我测试的东西,

我在提交后创建了一个目录test并创建了一个文件test/test.txt

然后我运行git add .and git checkout,但是新的文件和目录没有被删除。

为什么即使我将命令git checkout作为回滚,新文件仍然存在?

怎样才能完全回到舞台?

感谢您抽出宝贵时间阅读我的问题。

4

3 回答 3

5

查看此线程:如何将 Git 托管项目中的所有本地更改恢复到以前的状态?

正如 Thr4wn 所指出的,git reset --hard它将解决您的特定问题。但是,如上面链接的线程中所述,它不会删除未跟踪的文件:它仅删除您的第二个文件,因为您之前运行过 git add 。

git clean -fd似乎是删除您在提交后添加的所有内容的解决方案(这意味着您将丢失所有这些文件)。

于 2012-05-01T02:56:28.273 回答
1

请小心确保我首先理解您的问题,但我相信

git reset --hard

是您要查找的命令。

该命令的作用是不可逆转地擦除您自上次提交以来所做的所有更改。

于 2012-05-01T02:50:32.797 回答
0

GIT 的独特和有用的方面之一是您有一个存储库和一个工作目录,它们不需要相同。作为开发人员,您经常会同时发生多件事情。几个准备提交的文件;几个文件几乎准备好了,几个文件在那里进行测试,几个文件带有一些注释/想法等。使用 GIT,您可以决定要保存什么以及何时保存。添加并提交您想要的内容。处理其他事情,添加并提交。等等。如果在提交你的东西的过程中你最终得到了你不需要的东西,那么有一个简单的解决方案:

git status
rm <trash>

'git status' 让您可以非常清楚地看到您决定不添加所创建的内容。并且“rm垃圾”摆脱了被确认为垃圾的东西。

两步总比一步好。

于 2012-05-01T14:01:32.277 回答