我刚刚在新电脑上完成了一个git clone,现在我的回购处于一个有趣的状态:
没有检出分支。工作目录为空,但repo全部在此处,在.git元数据中压缩。
当然,这里缺少的一步是做一个git checkout
来将工作副本放到分支上,但这种状态让我思考。这是一个相当大的回购,我不希望也经常需要访问,所以我现在想知道,有没有办法回到这个' clean' state,没有签出分支,文件只作为元数据存在?
在节省一些磁盘空间方面会有很长的路要走。
我想过在完成后删除所有本地文件,但那会在该分支上显示为未提交的删除。我想知道是否有办法简单地清除'工作目录,将其与repo上的所有分支断开连接,只留下repo目录中的元数据。
这里的一个可能的解决方案可能是创建一个删除所有文件的分支,但这听起来并不优雅。也许存在更直接的方法?
一如既往,提前谢谢!
干杯
答案 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
会将文件标记为要删除。它会破坏你的工作目录。