После клонирования из удаленного репозитория git (в лучших кодах) я внес некоторые изменения, зафиксировал и попытался нажать:
git push origin master
Ошибки с:
ошибка: не удается заблокировать существующую информацию / ссылки
фатальные: сбой git-http-push
Этот случай касается уже существующего хранилища.
То, что я делал раньше, было:
git config –global http.sslVerify false
git init
git remote add [url]
git clone
- изменить данные
git commit
У 'bestcodes' у меня нет доступа к 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
Я клонировал раньше, затем изменил код и зафиксировал.
git fetch
раньшеgit pull
.Ответы:
Для меня это сработало:
git remote prune origin
Поскольку этот ответ, похоже, помогает многим людям, я немного углубился в то, что на самом деле происходит здесь. Для этого нужно удалить ссылки на удаленные ветви в папке
.git/refs/remotes/origin
. Так что это не повлияет на ваши локальные ветки и не изменит ничего удаленного, но обновит ваши локальные ссылки на удаленные ветки. Кажется, в некоторых случаях эти ссылки могут содержать данные, которые Git не может обработать правильно.источник
git
предлагает делать, но я не хотел этого делать, потому что команда звучит так, будто она что-то делает с удаленным.git gc --prune=now
Вы хотите попробовать сделать:
См. Https://www.kernel.org/pub/software/scm/git/docs/git-gc.html.
источник
git pull
застрял с похожим сообщением об ошибке.git
команду, имеющую дело с удаленным.git remote prune origin
решил вопрос раз и навсегда.Это случилось со мной, когда мой git remote (bitbucket.org) изменил свой IP-адрес. Быстрое решение проблемы заключалось в удалении и повторном добавлении пульта, после чего все работало как положено. Если вы не знакомы с тем, как удалить и повторно добавить пульт в git, выполните следующие действия:
Скопируйте SSH git URL вашего существующего пульта. Вы можете распечатать его на терминал, используя эту команду:
git remote -v
который распечатает что-то вроде этого:
Удалите пульт из локального репозитория git:
git remote rm origin
Добавьте пульт обратно в локальный репозиторий:
git remote add origin git@server-address.org:account-name/repo-name.git
источник
git branch -u origin/master
Запуск команды
git update-ref -d refs/heads/origin/branch
исправил это.источник
git update-ref -d refs/remotes/origin/my_branch
Я исправил это, выполнив следующее
Это при условии, что ваши локальные и удаленные ветви выровнены, и вы просто получаете ошибку refs как не фатальную.
источник
У меня была эта проблема, потому что я был на ветке, имя которой было похоже на ветку восходящего потока. то есть была названа ветка upstream
example-branch
и моя локальная веткаexample-branch/backend
. Решением было изменение названия моего местного филиала следующим образом:источник
Что сработало для меня:
.git/logs/refs/remotes/origin/branch
.git/refs/remotes/origin/branch
git gc --prune=now
источник
Возможно, это уже решено. Но вот что сработало для меня.
Расположение:
Если заблокированный репозиторий находится на стороне сервера:
Если заблокированный репозиторий является локальным:
Запустите эту команду:
Исправьте разрешения для вашего (удаленного или локального) хранилища, если это необходимо. В моем случае я должен был
chmod
в777
иchown
кapache:apache
Попробуйте еще раз нажать из локального репозитория:
источник
Вот как это работает для меня.
Еще более быстрая альтернатива:
cat /dev/null > /var/lock/apache2/DAVlock
источник
#> rm DAVLock; touch DAVLock; chown www-data.www-data DAVLock; chmod 755 DAVLock; service apache2 restart
Это похоже на проблему с разрешениями - возможно ли, что у вас было открыто два окна, выполняющихся с разными правами? Возможно, проверьте владение папкой .git.
Возможно, проверьте, есть ли открытая блокировка файла, возможно, используйте lsof для проверки или эквивалент для вашей ОС.
источник
В моем случае ветвь была перемещена в подкаталог, и каталог был назван как ветвь. Git был смущен этим. Когда я удалял локальную ветку (в SourceTree просто щелчком правой кнопки мыши) все работало как обычно.
источник
В моем случае после получения этого сообщения я выполнил команду checkout и получил следующее сообщение:
После выполнения этой команды я вернулся к нормальной жизни.
источник
Обновить:
Вам может понадобиться отредактировать файл ~ / .netrc:
https://bugs.launchpad.net/ubuntu/+source/git-core/+bug/293553
Оригинальный ответ:
Почему вы отключили ssl? Я думаю, что это может быть связано с тем, что вы не можете протолкнуть через https. Я бы поставил его обратно и попытался снова нажать:
источник
Убедитесь, что у вас (на самом деле процесс git) есть доступ к файлу,
.git/info/refs
и этот файл не заблокирован другим процессом.источник
У меня была эта проблема, когда я пытался создать новую ветвь функции, которая содержала имя старой ветви, например origin - branch1, и я хотел создать функцию branch1. Это было невозможно, но Branch1 / Feature уже была.
источник
В моем случае мне пришлось вручную удалить старые теги, которые были удалены на удаленном компьютере.
источник
В моем случае это было связано с именем филиала, которое я уже создал.
Чтобы решить эту проблему, я создал ветку с именем, которое наверняка не должно существовать, например:
Затем я очистил все остальные мои ветки (не активные), потому что они были просто ненужным мусором.
и затем переименовал мою текущую ветку с именем, которое я намеревался, например:
источник
В случае bettercodes.org решение более поэтическое - единственная проблема может заключаться в правах, закрепленных за участниками проекта. Простые участники не имеют прав на запись! Пожалуйста, убедитесь, что у вас есть права модератора или администратора. Конечно, администратор должен установить это на bettercodes.org в настройках проекта.
источник
Я видел эту ошибку при попытке запустить,
git filter-branch
чтобы отделить много подкаталогов в новый отдельный репозиторий (как в этом ответе ).Я перепробовал все вышеперечисленные решения, и ни одно из них не сработало. В конце концов я решил, что мне не нужно сохранять все эти теги в новой ветке, и просто запустил:
источник
Вот что я сделал, чтобы избавиться от всех проблем с блокировкой ссылок:
Это, вероятно, то, что вам нужно сделать тоже.
источник