7

当我将分支从本地存储库推送到拇指驱动器时,我需要一些帮助来解决错误。我相信问题是由不同驱动器之间来回切换引起的。特别是,我丢失了一个并开始使用替代品。然后,当我找到原版时,我切换回了它。现在看来我的一些裁判/负责人搞砸了。例如,当我尝试推送分支时得到以下输出:

$ git push origin android-lite 
Counting objects: 111, done.
Compressing objects: 100% (98/98), done.
Writing objects: 100% (109/109), 29.63 KiB, done.
Total 109 (delta 40), reused 0 (delta 0)
error: unable to resolve reference refs/heads/android-lite: No such file or directory
remote: error: failed to lock refs/heads/android-lite
To /media/2AC0-E4E2/devel/src/java/bbct/
 ! [remote rejected] android-lite -> android-lite (failed to lock)
error: failed to push some refs to '/media/2AC0-E4E2/devel/src/java/bbct/'
$ 

如果我理解正确,这表示 refs/heads/android-lite 不存在于原点。但是,我很困惑为什么 git 不创建新分支。我的本地存储库中有什么东西表明 android-lite 分支已经存在于原点吗?

4

1 回答 1

2

如果调试远程 repo 太复杂(如在这个问题中,使用git gc, git prune, git fsck, ...)),您仍然可以:

  • git bundle你当前的仓库,只会给你一个文件,
  • 将那个文件复制到远程驱动器上
  • 来自该捆绑文件的 git clone
  • 将您当前的远程地址设置为该新路径

这有点像“如何同步两个 git 存储库”,并且为这个任务使用一个包是为了确保你没有任何文件错误副本。

于 2012-12-31T23:57:24.647 回答