我做了 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.
什么是正确的命令?
git checkout . # revert your changes
git clean -xdf # delete untracked and ignored files
您可以使用“git checkout”。或“git checkout HEAD -- .”,甚至“git reset --hard HEAD”将您的工作区域重置为已知状态(在第一种情况下记录在索引中的状态,在第二种和第三种情况下记录在 HEAD 提交中的状态) .
要删除您不想保留的未跟踪文件,可以使用“git clean”(有关详细信息,请参阅文档)。
要从您克隆的远程存储库中获取新更改,请使用“git fetch”(或等效的“git remote update”,经过一些设置)或“git pull”(获取和合并更改)。
要还原所有更改,请使用:
git checkout .
但是,未跟踪的文件(树中最初不存在的文件,您创建但未编辑的文件)不会被删除。要查找未跟踪的文件,请使用:
git status
然后手动删除它们。
顺便说一句,如果您想制作 repo 的副本,则不需要克隆原始 repo,您只需克隆硬盘上已有的 repo。去外面的某个地方foo
,然后做:
git clone /path/to/foo
如果你真的搞砸了:
git clean -df
git reset --hard HEAD
您也可以随时使用
rm -rf *
git checkout master
要记住的命令更少:)