gui - git下载



Git和讨厌的“错误:不能锁定现有的信息/参考致命” (8)

你想尝试做:

git gc --prune=now

请参阅https://www.kernel.org/pub/software/scm/git/docs/git-gc.html

从远程git仓库克隆(在bettercodes)后,我做了一些改变,提交并尝试推送:

git push origin master

错误与:

错误:无法锁定现有的信息/参考
致命:git-http-push失败

这种情况下已经存在的存储库。

我之前做过的是:

  1. git config –global http.sslVerify false
  2. git init
  3. git remote add [url]
  4. git clone
  5. 改变数据
  6. git commit

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

我正在使用Windows。 详细的错误是:

C:\MyWorkStuff\Projects\Ruby\MyProject\>git push origin master
Unable to create branch path https://user:[email protected]/myproject/info/
error: cannot lock existing info/refs
fatal: git-http-push failed

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


Answer #1

在bettercodes.org的情况下,解决方案更具诗意 - 唯一的问题可能是分配给项目成员的权利。 简单的成员没有写权限! 请确保您拥有版主或管理员权限。 当然,这需要由管理员在项目设置的bettercodes.org上进行设置。


Answer #2

对我来说,这工作:

git remote prune origin

由于这个答案似乎有助于很多人,我挖掘了一下这里实际发生的事情。 这将做的是删除对文件夹.git/refs/remotes/origin远程分支的引用。 所以这不会影响你本地的分支机构,它不会改变任何远程的,但它会更新你有远程分支机构的本地引用。 看起来在某些情况下,这些引用可能包含Git无法正确处理的数据。


Answer #3

当我的git remote(bitbucket.org)改变了他们的IP地址时,这发生在我身上。 快速解决方案是删除并重新添加远程,然后一切按预期工作。 如果您不熟悉如何删除并重新添加远程git,请按以下步骤操作:

  1. 复制现有远程的SSH git URL。 您可以使用以下命令将其打印到终端:

    git remote -v

这将打印出如下所示的内容:

 origin [email protected]:account-name/repo-name.git (fetch)
 origin [email protected]:account-name/repo-name.git (push)
  1. 从您的本地git回购中删除远程:

    git remote rm origin

  2. 将遥控器添加回您的本地回购:

    git remote add origin [email protected]:account-name/repo-name.git


Answer #4

我通过执行以下操作来解决此问题

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

这假设你的本地和远程分支是对齐的,你只是得到了refs错误为非致命的。



Answer #6

这听起来像是一个权限问题 - 是否有可能打开了两个窗口,使用单独的权限执行? 也许检查.git文件夹的所有权。

也许检查是否有未解决的文件锁定打开,可能使用lsof检查,或与您的操作系统等效。


Answer #7

这是它对我的作用。

  1. 查看服务器上的Apache DAV锁定文件(例如,/ var / lock / apache2 / DAVlock)
  2. 删除它
  3. 使用Web服务器的写入权限重新创建它
  4. 重新启动网络服务器

更快的选择:

  1. 查看服务器上的Apache DAV锁定文件(例如,/ var / lock / apache2 / DAVlock)
  2. 清空文件: cat /dev/null > /var/lock/apache2/DAVlock
  3. 重新启动网络服务器




git