小编Kod*_*key的帖子

使用git子树推送"致命:坏对象"错误

这是一个noob问题,但我正在解决这个问题.我继承了一个奇怪的问题,一个git子树似乎是repo腐败.

这是场景:项目B中正在使用基于git的项目A的子树.部署部署脚本用于将子树推送到项目B的回购:

git subree push -P sub/path/name --squash git@github.com:MyCo/project_b.git projectb_branch

它开始推动提交并失败

"fatal: bad object {sha}" 
Run Code Online (Sandbox Code Playgroud)

我在源代码的git日志中搜索了SHA.它出现在提交中:

git-subtree-dir: app/assets/ui
git-subtree-split: {sha}
Run Code Online (Sandbox Code Playgroud)

目标repo(project_b)确实具有该SHA的提交但源repo没有.我浏览了子树shell脚本,我可以看到它在尝试使用git log查找该对象时失败(在toptree_for_commit函数中调用git log -l --pretty = format:'%T'{sha}).

在这一点上,我在我的头脑中,但渴望寻找解决方案.在我的有限知识允许的情况下,我对此进行了研究,所以我欢迎任何可以让我更接近解决方案的提示,技巧或RTFM.

衷心的感谢!

git subtree

13
推荐指数
2
解决办法
4478
查看次数

标签 统计

git ×1

subtree ×1