从远程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对此感到困惑。当我删除本地分支时(在SourceTree中只需右键单击delete),一切都正常工作。

其他回答

对我有用的是:

删除. /日志/文献/遥控器/产地/分支 删除. / refs /遥控器/产地/分支 运行git gc——prune=now

更多关于git gc命令的信息请访问:https://git-scm.com/docs/git-gc

在我的例子中,一个分支被移动到一个子目录,这个目录被称为分支。Git对此感到困惑。当我删除本地分支时(在SourceTree中只需右键单击delete),一切都正常工作。

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

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

这发生在我身上,当我的git远程(bitbucket.org)改变了他们的IP地址。快速解决方法是删除并重新添加遥控器,然后一切都能正常工作。如果你不熟悉如何在git中删除和重新添加一个远程,以下是步骤:

复制现有远程的SSH git URL。你可以使用下面的命令打印到终端: Git remote -v

它会打印出如下内容:

 origin git@server-address.org:account-name/repo-name.git (fetch)
 origin git@server-address.org:account-name/repo-name.git (push)

从本地git repo中删除远程: Git远程rm来源 将遥控器添加回本地回购: Git远程添加源git@server-address.org:account-name/repo-name.git

我遇到了一个典型的Mac相关问题,用其他建议的答案无法解决。

Mac的默认文件系统设置是不区分大小写的。

在我的例子中,一个同事显然忘记了为分支创建一个大写字母。

testBranch /符合 vs。 testbranch / id 2

对于Mac文件系统(是的,它可以配置不同)这两个分支是相同的,在这种情况下,你只能得到两个文件夹中的一个。对于剩下的文件夹,您将得到一个错误。

在我的例子中,删除.git/logs/ref/remotes/origin中的有问题的子文件夹解决了问题,因为有问题的分支已经合并回来了。