Git错误时推 - update_ref失败

Git错误时推 - update_ref失败

问题描述:

我有一个问题,当我尝试推我的本地提交,它可能发生在Android Studio已经粉碎。以下是错误:Git错误时推 - update_ref失败

update_ref failed for ref 'refs/remotes/origin/master': cannot lock ref 'refs/remotes/origin/master': unable to resolve reference refs/remotes/origin/master: Invalid argument

$git stashHEAD现在是我的最新承诺。

我仍然是git的初学者,我不知道如何解决它..我该怎么办?

您的refs/remotes/origin目录 - 这是您的本地存储库中的一个目录 - 有某种问题。 (我不清楚究竟发生了什么错误,但是你猜测它发生在Android Studio崩溃时似乎也可能发生。)

要修复它,可以使用或许使用使用下面的命令序列。请注意,我不推荐使用它 - 您的Git服务无论是Android Studio还是普通的命令行Git都不应该崩溃并且给您留下一个损坏的存储库,所以您应该永远不要使用来做到这一点,它只是一个紧急修复,像把胶带都在你的车后树上掉下来就可以了,就足以让你到一个适当的维修/更换车辆后:

$ cd $(git rev-parse --show-toplevel) # if necessary 
$ rm -rf .git/refs/remotes/origin  # remove all origin/* 
$ mkdir .git/refs/remotes/origin  # create empty origin/ 
$ git fetch origin      # repopulate origin/* 

在任何情况下,它很可能你的git push在这一点上确实成功了,因为失败的是对你的origin/master远程追踪分支的更新。

你的Git刚说完另一混帐上origin,给他们更新(的origin用户)为他们的master,并origin接受这些更新,你的Git是现在记录的事实是,它最后一次与origin,交谈,他们的master被设置为某个特定的提交散列 - 您刚刚推送的散列。

(请记住,你origin/*远程跟踪分支只是记录,对你来说,你的Git看到什么他们 Git有它的分支机构。您的Git更新这些当您运行git fetch,在您的Git会谈到他们的Git并得到其所有分支机构。您的Git还更新了一些,不是全部的git push,当你的Git会谈到他们的Git,并要求他们设置一个或多个分支机构,为您的Git递给她们的哈希值。)


Excep作为一名Git机械师,我的推荐部件实际上是适当的车身面板,皮带和软管,以及夹具,而不仅仅是胶带,打包线和口香糖。 :-)

+0

工程就像一个魅力,非常感谢你! – Pawel

要提交到您的在线回购,您需要这样做:$ git push origin branch_name。要知道你的分支名字只需要做一个$ git status,它就会显示出来(在git bash中它是用蓝色着色的)。你的问题可能来自不同的来源。基本上,git告诉你它不能理解你作为参数传递的内容。你确定你在你的仓库吗?

+0

错误,我得到的显示出来,当我试图把检查悬挂的斑点。我在分支大师。是的,我确定我在我的存储库中,因为我可以看到我在Android Studio中进行的更改,例如,当我添加一个可绘制的,我也可以看到我的最新提交隐藏,这里是消息: “保存的工作目录和索引状态WIP上的主:a5fa9f4浮动行动酒吧和夜间主题添加 HEAD现在在a5fa9f4 Floating Action酒吧和夜景主题增加了“ 任何想法? – Pawel

+0

@Pawel所以你使用这个确切的命令:git push origin master,它出错了吗? – limbo

除了在接受的答案中提到的步骤之外,我还必须使用下面的垃圾回收器命令来删除悬挂提交blob。

 git gc --prune="0 days" 

您可以通过运行

git fsck