我正在使用usb,我克隆了我的回购,所以我可以在家里转移我的工作,反之亦然。很多时候,usb存在问题并破坏了存储库。如果我尝试清理它并重新显示它会将所有旧的(自我)文件显示为已删除,并将所有原始文件显示为已修改。
我尝试通过删除文件夹或重命名来清除克隆的repo,或者删除事件删除.git和reclone但它仍然显示旧文件已删除。有办法解决吗?
答案 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 --bare
或git clone --bare
创建裸存储库。
您看到的“损坏”是因为git push不会更新非裸目标存储库的工作目录。如果从正在推送的分支中检出工作副本,则会导致工作副本的状态无效。
但是,除非您想直接使用USB密钥工作,否则绝对没有理由在那里有工作副本。所以不要创造它,它不需要任何东西。
另一方面,如果您打算关闭USB密钥,或者总是拉到它(当然会更新工作副本)或安装适当的钩子来更新工作副本(有两种方法,具体取决于关于你打算如何使用它。)