从远程git存储库克隆后(在bettercodes) 我做了一些改变,承诺 并试图推动:

git push origin master

错误:

错误:不能锁定现有的信息/引用 致命:git-http-push失败

本案例涉及已经存在的存储库。

我之前做的是:

Git配置-global http。sslVerify假 git init Git远程添加[url] git克隆 更改数据 git提交

在'bettercodes'我没有访问git日志。

我用的是Windows。 具体的错误是:

C:\MyWorkStuff\Projects\Ruby\MyProject\>git push origin master
Unable to create branch path https://user:password@git.bettercodes.org/myproject/info/
error: cannot lock existing info/refs
fatal: git-http-push failed

我之前克隆过,然后修改代码并提交。


当前回答

除了对这个问题已经提供的许多答案之外,简单地检查一下您的机器中存在的本地回购分支和远程中不存在的本地回购分支,将会有所帮助。在这种情况下,你不用

去修剪

正如许多人所建议的那样。

只需删除本地分支

git branch -d <branch name without a remote tracking branch by the same name>

如所附截图所示,当您确定本地分支没有跟踪远程分支时,使用-D强制删除。

其他回答

在我的例子中,它与我已经创建的分支名称相连接。

为了解决这个问题,我创建了一个分支,它的名字肯定不应该存在,比如:

git checkout -b some_unknown_branch

然后我清除了所有其他分支(不活动),因为它们只是不必要的垃圾。

git branch | grep -v \* | grep -v master | xargs git branch -D

然后用我想要的名字重命名我的当前分支,比如:

git checkout -m my_desired_branch_name

除了对这个问题已经提供的许多答案之外,简单地检查一下您的机器中存在的本地回购分支和远程中不存在的本地回购分支,将会有所帮助。在这种情况下,你不用

去修剪

正如许多人所建议的那样。

只需删除本地分支

git branch -d <branch name without a remote tracking branch by the same name>

如所附截图所示,当您确定本地分支没有跟踪远程分支时,使用-D强制删除。

这听起来像是一个权限问题——有没有可能你打开了两个窗口,使用不同的权限执行?也许可以检查.git文件夹的所有权。

也许检查是否有未完成的文件锁打开,也许使用lsof检查,或者对您的操作系统使用相同的方法。

检查你(git进程)是否可以访问文件.git/info/refs,并且这个文件没有被其他进程锁定。

更新:

你可能需要编辑~/.netrc文件:

https://bugs.launchpad.net/ubuntu/+source/git-core/+bug/293553


最初的回答:

为什么禁用ssl?我想这可能与你无法通过https推送有关。我会把它放回去,再试着推一下:

git config –global http.sslVerify true