清除git工作目录

时间:2016-07-20 02:47:10

标签: git

我刚刚在新电脑上完成了一个git clone,现在我的回购处于一个有趣的状态:

没有检出分支。工作目录为空,但repo全部在此处,在.git元数据中压缩。

当然,这里缺少的一步是做一个git checkout来将工作副本放到分支上,但这种状态让我思考。这是一个相当大的回购,我不希望也经常需要访问,所以我现在想知道,有没有办法回到这个' clean' state,没有签出分支,文件只作为元数据存在?

在节省一些磁盘空间方面会有很长的路要走。

我想过在完成后删除所有本地文件,但那会在该分支上显示为未提交的删除。我想知道是否有办法简单地清除'工作目录,将其与repo上的所有分支断开连接,只留下repo目录中的元数据。

这里的一个可能的解决方案可能是创建一个删除所有文件的分支,但这听起来并不优雅。也许存在更直接的方法?

一如既往,提前谢谢!

干杯

2 个答案:

答案 0 :(得分:2)

嗯,我相信我在这里找到了自己的答案。有可能!

Git拥有“孤儿”的概念。分支机构。这是一个与repo历史记录中的任何其他提交没有历史关系的分支。这样我们就可以查看“不提交”内容。通过做:

git checkout --orphan none

然后

git rm -rf .

有效地摆脱了所有文件,并且因为没有'分支没有祖先,删除不会显示为删除。元数据文件夹保持不变,因此要返回有效分支,您只需再次结帐。

更多信息: https://coderwall.com/p/0n3soa/create-a-disconnected-git-branch

得爱git!

干杯

答案 1 :(得分:-2)

  

我刚刚在一台新计算机上完成了一个git clone,现在我的repo处于一个有趣的状态:   检查没有分支。工作目录为空,但repo全部在此处,在.git元数据中压缩。

默认情况下,git clone会为您检出主分支。如果主分支是空的(通常,我想创建一个更有意义的分支名称来启动,而不是默认分支名称,即master),您将看不到工作目录中的任何文件。

  

git checkout --orphan none

     

然后

     

git rm -rf。

我想建议你不要这样做。 git rm会将文件标记为要删除。它会破坏你的工作目录。