Git 整个团队获得';太多无法触及的松散对象';信息

Git 整个团队获得';太多无法触及的松散对象';信息,git,garbage-collection,gitlab,Git,Garbage Collection,Gitlab,不久前,我们已经从SVN切换到Git 几天前,我意识到我们所有的团队在推送时都会收到这些信息: $ git push Counting objects: 32, done. Delta compression using up to 8 threads. Compressing objects: 100% (19/19), done. Writing objects: 100% (32/32), 2.94 KiB | 0 bytes/s, done. Total 32 (delta 14), r

不久前,我们已经从SVN切换到Git

几天前,我意识到我们所有的团队在推送时都会收到这些信息:

$ git push
Counting objects: 32, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (32/32), 2.94 KiB | 0 bytes/s, done.
Total 32 (delta 14), reused 0 (delta 0)
error: The last gc run reported the following. Please correct the root cause
and remove gc.log.
Automatic cleanup will not be performed until the file is removed.

warning: There are too many unreachable loose objects; run 'git prune' to remove them.

To git@git.ad.xxx.se:root/xxx.git
   15c3bbb..69e6d8b  xxxx -> xxx
有一段时间,我以为它来自我的电脑,直到我意识到每个人都有同样的问题

不用说,my.git文件夹中没有gc.log,使用'git-gc'或'git-prune'没有任何效果

所以我的问题是:是否服务器上托管的存储库不干净?如果是这样,我该如何实际清洁它

到目前为止,我找到的所有解决方案都与存储库的本地副本有关

此外,我们还使用Gitlab托管回购协议

编辑:值得一提的是,自从我发布这个问题以来,我也尝试过使用Gitlab对存储库进行“内部清理”,但到目前为止没有任何结果。

接下来是(Gitlab 8.6或更低版本)

手动修复是:

  • SSH进入worker1
  • 将光盘放入gitlab org/gitlab ce目录
  • 运行
    rm gc.log
    ,其中只包含一行“警告:有太多无法访问的松散对象;运行'git prune'删除它们。”
  • 运行git prune,祈祷它没有弄坏东西(谢天谢地,它没有弄坏东西)
但看起来,从GitLab 8.7开始,。
这也是在以下情况下完成的:

通常,在重新设置基础、修改或其他需要强制推动的操作之后,我们可以进行悬空提交

由于可能在内部或通过使用GitLab内务管理功能执行的
git gc
,此类“取消引用”提交正在丢失

如果碰巧有一个讨论附加到一个特定的提交,那么在取消引用的提交被垃圾收集之后,它就不可用了

提交被记录在推送事件中,并且可以通过添加到合并请求中的系统注释获得,目前这会在GitLab中产生错误500

更新:该发行于一个月后(2016年7月)结束,发行日期如下:

  • :不要垃圾收集具有相关DB记录(如注释)的提交
确保在运行Git垃圾回收时保持提交状态。
Git GC将从存储库中删除不再位于任何分支或标记中的提交,但我们希望保留其中一些提交,例如,如果它们有注释或CI构建

  • :重构:将现有基于阵列的差异参照转换为衍射模型

    • 我面临同样的问题,上述解决方案并没有解决我的问题。我收到了同样的问题,上面写着:

      warning: There are too many unreachable loose objects; run 'git prune' to remove them.
      
      我引用了这一点,并运行了以下命令来解决它:
      git-gc

      例如:
      /xx/code/home/xx
      是我的git存储主路径

      (base) laxman@xxxxx:/xx/code/home/xx$ git gc
      Counting objects: 251571, done.
      Delta compression using up to 12 threads.
      Compressing objects: 100% (78004/78004), done.
      Writing objects: 100% (251571/251571), done.
      Total 251571 (delta 141562), reused 245636 (delta 137343)
      

      希望它也适用于其他人。

      您使用的是什么版本的GitLab?哈,谢谢。我确实搜索了一个类似的问题,但显然错过了这个问题。今晚我们将尝试执行必要的步骤,看看它是否解决了问题。@jlengrand OK,但您当前使用的GitLab版本是什么?版本是8.6.4:)@jlengrand OK,有意义。好的,我已经完成了所有步骤并更新到最新版本。现在让我们看看这是否有效。我一推就回来