2

我是 Git 新手。我们使用 Bonobo Git 服务器作为后端,使用 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。

4

1 回答 1

0

首先备份损坏的存储库,以防你让事情变得更糟。

然后只需将好的文件复制到git/objects/90/3228...服务器上。

有关详细信息,请参阅从存储库损坏中恢复

如果有很多丢失的物品,您确实可以将它们打包发送:

  1. 在服务器上,找到缺失对象的 SHA-1 和

    git fsck | grep missing | grep -o '[0-9a-f]\{40\}' > missing
    
  2. 在开发者的机器上,打包丢失的对象

    git pack-objects --stdout < missing > objects.pack
    
  3. 在服务器上,解压打包文件

    git unpack-objects < objects.pack
    
于 2013-05-25T00:32:03.810 回答