Git推送失败到GitHub:读取对象失败?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我一直在我的台式机和笔记本电脑上开发一个ROR应用程序。提交在另一个上所做的更改,将它们推送到GitHub,并在其他上进行提取和合并是非常方便的。

起点是:我在桌面上提交了最新的更改,将它们推送到GitHub,然后将它们获取并合并到我的膝上型计算机中。然后,我在笔记本电脑上做了一些提交,然后推到GitHub。将更改合并到我的桌面上(与--no-ff)。然后,发生了所有可能的问题的根源:我返回桌面,以提交它在最近的提取和合并之前的地方。用它做了一些开发工作,投入了,推到了GitHub。在笔记本电脑中,我也进行了还原,不过我将其还原为提交,该提交在最近一次从GitHub获取之间进行,然后再次获取并合并。一些错误信息是在恢复桌面和笔记本电脑之后发出的,但是事情仍然进行得很好,我继续在这两台机器上工作。

直到现在。我尝试从我的笔记本电脑推送到GitHub,它提供了以下输出:

 Counting objects: 106, done.
 error: unable to find 5a2a4ac...
 error: unable to find bc36923...
 error: unable to find ecb0d86... 
 error: unable to find f76d194...
 error: unable to find f899df7...
 Compressing objects: 100% (64/64), done.
 fatal: failed to read object 5a2a4ac... : Invalid argument
 error: failed to push some refs to 'git@github:username/repo.git'

所以,问题是,到底发生了什么?

提问于
用户回答回答于

问题在于,你正在尝试读取不属于“树”的对象。他们确实存在,但他们已经成为孤儿。但是,GIT允许你将一个项目合并到另一个项目,因此这是一种可以保持提交而不重新启动的方法,如下所示:

  1. git远程add-f命名git://Somegitplace.com/user/ome.git
  2. Git合并-
  3. git读-树-前缀=ext/smename-u
  4. Git提交-m‘外部合并’
  5. Git拉子树命名主

希望能帮上忙。如果没有,请告诉我,我们可以再次攻击它。

用户回答回答于

我遇到过这样的问题。

我的“解决方案”通常不是花费几个小时来解决和修复这些问题,而是将代码复制到一个新目录中,删除.git文件,然后为其创建一个新的GitHub,然后像往常一样将两者连接起来。

虽然这可能不是你提出的细节的具体答案,但我发现Git/GitHub问题可以通过多种方式发生,而不是希望我现在是一个‘git专家’(正在发生,但需要时间),我做上述工作并继续实际的应用程序开发。

扫码关注云+社区