Git和讨厌的“错误:不能locking现有的信息/裁判致命”
从远程git仓库克隆(在bettercodes)后,我做了一些改变,承诺,并试图推动:
git push origin master 错误与:
错误:无法locking现有的信息/裁判
致命的:git-http-push失败
这种情况下,已经存在的知识库
我之前做的是:
-  git config –global http.sslVerify false
-  git init
-  git remote add [url]
-  git clone
- 改变数据
-  git commit
在'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 remote(bitbucket.org)更改了他们的IP地址时,这发生在我身上。 快速修复是删除并重新添加远程,然后一切按预期工作。 如果你不熟悉如何删除和重新添加远程git,这里是步骤:
- 
复制现有远程的SSH git URL。 您可以使用以下命令将其打印到terminal: 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仓库中删除远程仓库: git remote rm origin
- 
将遥控器添加回您的本地回购: git remote add origin git@server-address.org:account-name/repo-name.git
对我来说,这工作:
 git remote prune origin 
我通过执行以下操作来解决此问题
 git branch --unset-upstream rm .git/refs/remotes/origin/{branch} git gc --prune=now git branch --set-upstream-to=origin/{branch} {branch} #or git push --set-upstream origin {branch} git pull 
这假设你的本地和远程分支是alignment的,你只是得到refs错误为非致命的。
这现在可能已经解决了。 但是这是对我有用的东西。
- 
位置: - 
如果locking的存储库在服务器端: - ssh到服务器上的git存储库。
- 以具有修改存储库权限的用户身份login并导航到服务器上的存储库。
 
- 
如果locking的存储库仅在本地: - 打开git控制台并导航到存储库目录。
- 
运行这个命令: git update-server-info
 
 
- 
- 
如果必须修复(远程或本地)存储库的权限。 在我的情况下,我不得不 chmod到777和chown到apache:apache
- 
尝试再次从本地存储库中推送: git push
这是如何为我工作的。
- 查看服务器上的Apache DAVlocking文件(例如/ var / lock / apache2 / DAVlock)
- 删除它
- 用Web服务器的写入权限重新创build它
- 重新启动networking服务器
更快的select:
- 查看服务器上的Apache DAVlocking文件(例如/ var / lock / apache2 / DAVlock)
-  清空文件: cat /dev/null > /var/lock/apache2/DAVlock
- 重新启动networking服务器
这听起来像一个权限问题 – 是否有可能你打开两个窗口,执行单独的权利? 也许检查.git文件夹的所有权。
也许检查是否有一个优秀的文件锁打开,也许使用lsof来检查,或相当于您的操作系统。
 检查你(实际上是git进程)是否有权访问文件.git/info/refs ,这个文件没有被其他进程locking。 
更新:
你可能需要编辑你的〜/ .netrc文件:
https://bugs.launchpad.net/ubuntu/+source/git-core/+bug/293553
原始答案:
你为什么禁用ssl? 我想这可能与您无法通过https推送有关。 我把它设置回来,并尝试再次推动:
 git config –global http.sslVerify true 
在bettercodes.org的情况下,解决scheme更具诗意 – 唯一的问题可能是分配给项目成员的权利。 简单的成员没有写权限! 请确保您拥有版主或pipe理员权限。 当然,这需要由pipe理员在项目设置的bettercodes.org上设置。
在我的情况下,一个分支被移动到一个子目录,该目录被称为分支。 Git被这个混淆了。 当我删除本地分支(在SourceTree只是右键删除),一切照常工作。