git如何清理克隆的存储库并重新克隆

时间:2012-01-31 12:34:08

标签: windows git

我正在使用usb,我克隆了我的回购,所以我可以在家里转移我的工作,反之亦然。很多时候,usb存在问题并破坏了存储库。如果我尝试清理它并重新显示它会将所有旧的(自我)文件显示为已删除,并将所有原始文件显示为已修改。

我尝试通过删除文件夹或重命名来清除克隆的repo,或者删除事件删除.git和reclone但它仍然显示旧文件已删除。有办法解决吗?

2 个答案:

答案 0 :(得分:4)

我真的建议,为了拥有一个干净的回购版本,make a bundle (见git bundle man page) 请务必don't forget tags as well in your bundle
替代方案在“push vs. bundle vs. tar zcvf — to backup entire local .git”讨论。

这样,你只需要在你的usb密钥上备份一个文件(你可以从该捆绑文件克隆/获取)。
一个文件更难腐败;)

答案 1 :(得分:1)

您应该在USB密钥上使用存储库,即没有工作树的存储库。使用git init --baregit clone --bare创建裸存储库。

您看到的“损坏”是因为git push不会更新非裸目标存储库的工作目录。如果从正在推送的分支中检出工作副本,则会导致工作副本的状态无效。

但是,除非您想直接使用USB密钥工作,否则绝对没有理由在那里有工作副本。所以不要创造它,它不需要任何东西。

另一方面,如果您打算关闭USB密钥,或者总是拉到它(当然会更新工作副本)或安装适当的钩子来更新工作副本(有两种方法,具体取决于关于你打算如何使用它。)