Я'получаю странное и quot М;не то" Замок Реф; ошибка при попытке вытянуть изменения из GitHub. Я'пробовала в Git GC и оглянулся на подобные ошибки, но может'т найти решение.
> git pull
error: cannot lock ref 'refs/tags/v2.8': 'refs/tags' exists; cannot create 'refs/tags/v2.8'
From github.com:k3it/qsorder
! [new tag] v2.8 -> v2.8 (unable to update local ref)
error: cannot lock ref 'refs/tags/v2.9': 'refs/tags' exists; cannot create 'refs/tags/v2.9'
! [new tag] v2.9 -> v2.9 (unable to update local ref)
Ваш git жалуется, что ссылка (а не каталог) с именем рефы/теги
существует. Это's не ясно, что будет создать, но увидеть, если ГИТ Рэв-парсить ссылки/теги
производит хэш-код. Если это так, то справочник должен уйти:
git update-ref -d refs/tags
после чего `ГИТ выборки должны работать.
Если ГИТ Рэв-парсить ссылки/тегине удается (что надо—
рефы/теги` само не должно быть допустимым именем), то это не проблема и это's не ясно в чем собственно проблема.
ошибка: не удается заблокировать Реф 'судьи/теги/П2.8': 'рефы/теги' не существует; не может создать 'судьи/теги/В2.8' Из GitHub.ком:k3it/qsorder
Попробуйте удалить локальный тег В2.8
и В2.9
потом опять тянет.
$ git tag -d v2.8
$ git tag -d v2.9
$ git pull
Если вы хотите удалить все теги с помощью команды:
$ git tag | xargs git tag -d
#!/usr/bin/env bash
echo "update-ref delete refs/tags"
log="git-update-ref-errors.log"
script="./git-update-ref-exist-tags-delete.sh"
git_command="git update-ref -d refs/tags"
echo "log errors from ${git_command} to ${log}"
${git_command} 2>&1 | > ${log}
echo "show errors to ${log}"
cat ${log}
echo create ${script}
touch ${script}
echo "add execute (+x) permissions to ${script}"
chmod +x ${script}
echo "generate ${script} from errors log ${log}"
${git_command} 2>&1 | grep 'exists' | sed -n "s:.*\: 'refs/tags/\(.*\)' exists;.*:git tag -d '\1':p" >> ${script}
echo "execute ${script}"
${script}
echo fetch
log="git-fetch-errors.log"
script="./git-fetch-exist-tags-delete.sh"
git_command="git fetch"
echo "log errors from ${git_command} to ${log}"
${git_command} 2>&1 | > ${log}
echo "show errors from ${log}"
cat ${log}
echo create ${script}
touch ${script}
echo "add execute (+x) permissions to ${script}"
chmod +x ${script}
echo "generate ${script} from errors log ${log}"
${git_command} 2>&1 | grep 'exists' | sed -n "s:.*\: 'refs/tags/\(.*\)' exists;.*:git tag -d '\1':p" >> ${script}
echo "execute ${script}"
${script}
git fetch
echo pull
log="git-pull-errors.log"
script="./git-pull-exist-tags-delete.sh"
git_command="git pull"
echo "log errors from ${git_command} to ${log}"
${git_command} 2>&1 | > ${log}
echo "show errors from ${log}"
cat ${log}
echo create ${script}
touch ${script}
echo "add execute (+x) permissions to ${script}"
chmod +x ${script}
echo "generate ${script} from errors log ${log}"
${git_command} 2>&1 | grep 'exists' | sed -n "s:.*\: 'refs/tags/\(.*\)' exists;.*:git tag -d '\1':p" >> ${script}
echo "execute ${script}"
${script}
git pull
Скрипт выше будет записывать ошибки в ХХХ-ошибки.журнал и исправить их путем создания и автоматического запуска XXX-exist-tags-delete.sh от ХХХ-ошибки.войти с помощью следующих команд:
Для быстрой работы можно использовать
git толчок-удалить происхождения 'П2.8'
git толчок-удалить происхождения 'П2.9'
Вот что я попробовал и это сработало для меня.
git remote prune origin