我是Git的新手。我们使用Bonobo Git Server作为后端,使用TortoiseGit作为客户端。当我拉动时,我在TortoiseGit中得到以下内容 -
POST git-upload-pack (328 bytes)
fatal: protocol error: bad line length character: <!DO
fatal: write error: Invalid argument
git did not exit cleanly (exit code 1)
Bonobo的错误日志说 -
GitSharp.Core.Exceptions.MissingObjectException: Missing commit commit 903228ffc07ea920fd944c6fcdd5d8d5ef852ff1 0 ------
我在903228ffc07ea920fd944c6fcdd5d8d5ef852ff1
文件夹下的某个开发人员计算机上找到了丢失的.git\objects
文件。如何将其放在服务器上并让repo再次运行?请帮忙。
我在另一个线程上读到我需要repack
并将其推送到服务器?我怎么做?我是Git的新手。我正在使用Windows。
答案 0 :(得分:0)
首先备份损坏的存储库,以防您的情况变得更糟。
然后将好文件复制到服务器上的git/objects/90/3228...
。
有关详细信息,请参阅Recovering from repository corruption。
如果有很多丢失的物品,你确实可以将它们发送到一个包中:
在服务器上,找到缺少对象的SHA-1总和
git fsck | grep missing | grep -o '[0-9a-f]\{40\}' > missing
在开发者的计算机上,打包丢失的对象
git pack-objects --stdout < missing > objects.pack
在服务器上,解压缩包文件
git unpack-objects < objects.pack