【问题标题】:Git push subtree fail unknown revision or path possibly due to missing git-subtree-split commitGit push subtree 失败未知的修订或路径可能是由于缺少 git-subtree-split 提交
【发布时间】:2021-11-24 14:48:12
【问题描述】:

我一直在使用 git subtree 在我们主项目的文件夹中嵌入一个 repo。我不确定发生了什么,但现在推送子树无法更新远程仓库。

我用来推送的命令是:

git subtree push --prefix themes/natra https://github.com/OpenSID/tema-natra.git premium

错误信息是:

   fatal: ambiguous argument '3f44cc87ceb87df1d9171096596a824fc3050a27^{commit}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
could not rev-parse split hash 3f44cc87ceb87df1d9171096596a824fc3050a27 from commit 8577911bf6183497cc246aa620e7be1b6becec29

我在 repo 中找不到提交/哈希 3f44cc87ceb87df1d9171096596a824fc3050a27。在下面的 gitx 图像Commit is git-subtree-split 中,我可以看到提交是一个 git-subtree-split。但它似乎不再存在于 repo 中。

如何绕过这个明显丢失的提交或从中恢复?任何帮助将不胜感激。

【问题讨论】:

  • 这可能是git subtree 中的一个错误,其中有一些已知错误。有关详细信息,请参阅 Git 邮件列表存档。据我所知,目前没有人积极维护git subtree。
  • 感谢@torek 提供的信息。由于我无法帮助调试 git subtree,看来我需要考虑替换 git subtree 的使用。

标签: git git-push subtree


【解决方案1】:

正如我在 Git 邮件列表中向您发送的 answered 一样,发生这种情况是因为 https://github.com/OpenSID/tema-natra.git 的 premium 分支被强制推送。

要解决这个问题,只需通过其哈希获取提交(它仍然是available on GitHub):

git fetch https://github.com/OpenSID/tema-natra.git 3f44cc87ceb87df1d9171096596a824fc3050a27

然后您应该能够运行您的git subtree push 命令(尽管您可能需要强制推送...)

【讨论】:

  • 谢谢@philb。 git subtree push 命令现在不再抱怨缺少提交。但是,它仍然失败,调试消息显示大量提交的顺序不正确。这是摘录:Using cachedir: /Users/eddieridwan/projects/jimmybox/public/premium/.git/subtree-cache/50582Looking for prior splits...Processing commit: 1fbbdda4f0ef15794eeb4a343d3fb1bf17fbb853`父母:c75f7cab156c91a1bf3b36658e1ac94dd1905bba``错误顺序:c75f7cab156c91a1bf3b36658e1ac94dd1905bba`
  • 这可能是因为不正确的信息现在在子树缓存中吗?删除缓存值得尝试吗?谢谢。
猜你喜欢
  • 1970-01-01
  • 2014-08-06
  • 2013-07-27
  • 1970-01-01
  • 2016-02-23
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 2020-07-22
相关资源
最近更新 更多