git无法在一个项目上提取或获取代码,但在其他项目上工作正常

时间:2018-06-11 09:38:59

标签: git gerrit

我无法在我的某个项目上提取或获取代码。

发出命令:

$ git pull origin master

错误讯息:

fatal: internal server error
remote: internal server error
fatal: protocol error: bad pack header

尽管如此,我可以在同一个项目上拉补丁并拉动&在其他项目上获取origin master。

哪里可以看到更详细的日志?我该如何解决这个问题?

[编辑]

git fsck输出:

   Checking object directories: 100% (256/256), done.
   Checking objects: 100% (5155/5155), done.
   dangling blob 788d9159c3698bfcc753969387873989ac68d22f
   dangling blob d554a3844da9322ad6e0789dbec37d7679e9868c
   dangling blob e5d5dd07a27033814fb35be2ee28f38fdc13baca
   dangling blob 2116ab3d9b64d5d609b8ccc309970aeecb9bed2f
   dangling blob 07182a7ec9d47649f46a53c0d356c1b099086ed2
   dangling blob 7358ba2f4a5577183450c36491cf0a8221d4fdf1
   dangling blob 0f9d09248f5694d94d726b77c43bca5fa599ce99
   dangling blob eab7222fdb583fd3b80f693fb7422bfba7360644
   dangling blob c9384efaec1e9cd42e352de79c413140b90037de
   dangling blob 03bd2e76f8a30936d14af97039e2feb4110c87ac

配置文件:

   [core]
         repositoryformatversion = 0
         filemode = false
         bare = false
         logallrefupdates = true
         symlinks = false
         ignorecase = true
   [remote "origin"]
         url = ssh://<userId>@review.quicinc.com:29418/<projectName>
         fetch = +refs/heads/*:refs/remotes/origin/*
   [branch "master"]
         remote = origin
   merge = refs/heads/master

3 个答案:

答案 0 :(得分:0)

发生此错误是因为服务器上的内存不足。可能是因为大文件或虚拟限制。

尝试此命令,然后重试。这是reference

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"

答案 1 :(得分:0)

我可以看到悬挂的斑点,但那应该没问题。可能是Repo腐败,你可以尝试解决这个问题。保留配置文件的备份

$ cd project
$ cp .git/config .git/config.backup
$ git remote remove origin

上面的步骤只是重新重新链接你的回购。

$ mv .git/config.backup .git/config

现在再次获取所有内容,不要使用pull here

$ git fetch

现在执行

$ git pull origin master

答案 2 :(得分:0)

此问题现已解决。

松散的对象修剪导致问题并导致回购损坏。

通过将提示恢复到HEAD到服务器上的先前gerrit来解决问题。

感谢大家的回复。