Git и противный "ошибка: не может заблокировать существующую информацию / ссылки роковые" - PullRequest
236 голосов
/ 12 июля 2011

После клонирования из удаленного репозитория git (в лучших кодах) я внес некоторые изменения, зафиксировал и попытался нажать:

git push origin master

Ошибки с:

ошибка: невозможно заблокировать существующийinfo / refs
фатально: сбой 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

У «лучше кодов» у меня нет доступа к git log.

Я использую 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

Я клонировал раньше, затем изменил код и зафиксировал.

Ответы [ 16 ]

2 голосов
/ 12 мая 2016

В моем случае ветвь была перемещена в подкаталог, и каталог был назван как ветвь.Git был смущен этим.Когда я удалил локальную ветвь (в SourceTree просто щелчком правой кнопкой мыши) все работало как обычно.

1 голос
/ 12 июля 2011

Обновление:

Возможно, вам потребуется отредактировать файл ~ / .netrc:

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

Оригинальный ответ:

Почему вы отключили ssl? Я думаю, что это может быть связано с тем, что вы не можете нажать через https. Я бы поставил его обратно и попытался снова нажать:

git config –global http.sslVerify true
0 голосов
/ 02 ноября 2018

В моем случае это было связано с именем ветви, которое я уже создал.
Сначала я создал ветку с именем, которое наверняка не должно существовать, например:

git checkout -b some_unknown_branch

тогда я очистил все остальные мои ветки, потому что они были просто ненужным мусором.

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

и затем переименовал мою ветку в имя, которое я намеревался, например:

git checkout -m my_desired_branch_name
0 голосов
/ 12 июля 2018

Я видел эту ошибку при попытке запустить git filter-branch для отсоединения многих подкаталогов в новый отдельный репозиторий (как в этот ответ ).

Я перепробовал все вышеперечисленные решения, и ни одно из них не сработало. В конце концов я решил, что мне не нужно сохранять все эти теги в новой ветке, и просто запустил:

git remote remove origin
git tag | xargs git tag -d
git gc --prune=now
git filter-branch --index-filter 'git rm --cached -qr --ignore-unmatch -- . && git reset -q $GIT_COMMIT -- apps/AAA/ libs/xxx' --prune-empty -- --all
0 голосов
/ 12 января 2012

В случае bettercodes.org, решение более поэтическое - единственная проблема может быть в правах, назначенных участникам проекта. Простые участники не имеют прав на запись! Пожалуйста, убедитесь, что у вас есть права модератора или администратора. Конечно, администратор должен установить это на bestcodes.org в настройках проекта.

0 голосов
/ 12 июля 2011

Убедитесь, что у вас (на самом деле git-процесс) есть доступ к файлу .git/info/refs, и этот файл не заблокирован другим процессом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...