14

我做了 git clone git://foo.git cd foo ...edit files..

现在我想重新开始。我不关心我已经做出的任何更改,但我不想再次克隆整个巨大的 foo.git,只是丢​​失我所有的更改。我怎样才能 git clone git://foo.git 第二次,而没有得到 fatal: destination path 'foo' already exists and is not an empty directory. 什么是正确的命令?

4

5 回答 5

10
git checkout . # revert your changes
git clean -xdf # delete untracked and ignored files
于 2009-08-08T10:46:54.510 回答
2

您可以使用“git checkout”。或“git checkout HEAD -- .”,甚至“git reset --hard HEAD”将您的工作区域重置为已知状态(在第一种情况下记录在索引中的状态,在第二种和第三种情况下记录在 HEAD 提交中的状态) .

要删除您不想保留的未跟踪文件,可以使用“git clean”(有关详细信息,请参阅文档)。

要从您克隆的远程存储库中获取新更改,请使用“git fetch”(或等效的“git remote update”,经过一些设置)或“git pull”(获取合并更改)。

于 2009-08-08T12:28:20.063 回答
2

要还原所有更改,请使用:

git checkout .

但是,未跟踪的文件(树中最初不存在的文件,您创建但未编辑的文件)不会被删除。要查找未跟踪的文件,请使用:

git status

然后手动删除它们。

顺便说一句,如果您想制作 repo 的副本,则不需要克隆原始 repo,您​​只需克隆硬盘上已有的 repo。去外面的某个地方foo,然后做:

git clone /path/to/foo
于 2009-08-08T10:41:25.880 回答
0

如果你真的搞砸了:

git clean -df
git reset --hard HEAD
于 2009-11-19T12:28:33.660 回答
-2

您也可以随时使用

rm -rf *
git checkout master

要记住的命令更少:)

于 2009-08-09T11:43:12.527 回答