热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gitfsck:duplicateEntries:包含重复的文件条目-无法推送到gitlab

如何解决《gitfsck:duplicateEntries:包含重复的文件条目-无法推送到gitlab》经验,请问有什么解决方案?

我们有一个很大的git存储库,我想将其推送到一个自托管的gitlab实例。

问题是gitlab遥控器不允许我推送我的仓库:

git push --mirror https://mygitlab/xy/myrepo.git

这会给我这个错误:

Enumerating objects: 1383567, done.
Counting objects: 100% (1383567/1383567), done.
Delta compression using up to 8 threads
Compressing objects: 100% (207614/207614), done.
remote: error: object c05ac7f76dcd3e8fb3b7faf7aab9b7a855647867: 
duplicateEntries: contains duplicate file entries
remote: fatal: fsck error in packed object    

所以我做了一个git fsck:

error in tree c05ac7f76dcd3e8fb3b7faf7aab9b7a855647867: duplicateEntries: contains duplicate file entries
error in tree 0d7286cedf43c65e1ce9f69b74baaf0ca2b73e2b: duplicateEntries: contains duplicate file entries
error in tree 7f14e6474400417d11dfd5eba89b8370c67aad3a: duplicateEntries: contains duplicate file entries

我要做的下一件事是检查git ls-tree c05ac7f76dcd3e8fb3b7faf7aab9b7a855647867

100644 blob c233c88b192acfc20548d9d9f0c81c48c6a05a66    fileA.cs
100644 blob 5d6096cb75d27780cdf6da8a3b4d357515f004e0    fileB.cs
100644 blob 5d6096cb75d27780cdf6da8a3b4d357515f004e0    fileB.cs
100644 blob d2a4248bcda39c0dc3827b495f7751b7cc06c816    fileC.xaml

注意,fileB.cs它显示了两次,并且具有相同的哈希值。我认为这是问题所在,因为为什么文件在同一树中被两次使用相同的文件名和Blob哈希?

现在,我用谷歌搜索了问题,但是找不到解决该问题的方法。我发现一个看似不错的资源是:树包含重复的文件条目

但是,基本上可以归结为使用git replace并不能真正解决问题,因此git fsck仍会打印错误并阻止我将其推送到远程。

然后有一个似乎完全删除了文件的文件(但我仍然需要文件,但只需要一次,在树中不是两次):https : //stackoverflow.com/a/44672692/826244

还有其他解决方法吗?我的意思是说真的应该可以修复,以便git fsck不会抛出任何错误,对吗?我知道在损坏的提交之后,我将需要重写整个历史记录。我什至找不到找到指向特定树的提交的方法,否则我也许可以使用rebase并修补损坏的提交或其他内容。任何帮助将不胜感激!

更新:可以肯定的是我知道该怎么做,但还不知道怎么做:

    从旧树创建新树对象,但用git mktree<-完成纠正

    创建一个新提交,该提交与引用坏树的旧提交相同,但是使用新固定的树<-困难,我无法轻松地将提交提交给该树,我当前的解决方案运行了一个小时或更长时间,我不知道一旦找到它,如何创建修改后的提交

    运行git filter-branch -- --all<-应该坚持提交的替换

可悲的是,我不能只git replace --edit在坏树上使用然后运行,git filter-branch -- --all因为它filter-branch似乎只在提交时起作用,而忽略树替换...


推荐阅读
author-avatar
mobiledu2502891987
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有