Я клонирую частное репо, затем создаю ветку test
из master
и безуспешно нажимаю ее.
Вот вывод команды:
$ git push --set-upstream origin test
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: fatal: bad object refs/pull-requests/101/v2
fatal: bad object refs/pull-requests/101/v2
To ssh://git.my_repo_host:9999/my_repo.git
! [remote rejected] test -> test (missing necessary objects)
error: failed to push some refs to 'ssh://git.my_repo_host:9999/my_repo.git'
Я также пробовал git fsck --full
и git gc
, но не повезло:
$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (31288/31288), done.
Verifying commits in commit graph: 100% (4081/4081), done.
$ git gc
Enumerating objects: 31288, done.
Counting objects: 100% (31288/31288), done.
Delta compression using up to 8 threads
Compressing objects: 100% (13738/13738), done.
Writing objects: 100% (31288/31288), done.
Total 31288 (delta 15511), reused 31274 (delta 15505), pack-reused 0
А это вывод git config --local -l
на главной ветке, здесь ничего особенного.
$ git config --local -l
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=ssh://git@git.my_repo_host:9999/my_repo.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
Данные git на моем удаленном хосте репо были повреждены после недавнего обслуживания ИТ-командой. После их исправления все возвращается к норме.
Извините, нет больше подробностей (как они исправили) от них.
@VonC, я добавил вывод к своему вопросу
И я полагаю, проблема сохраняется после fcsk
/gc
? Можете ли вы включить свой git config --local -l
?
@VonC, добавил я. Но никаких особых настроек с моей стороны.
Сообщение об ошибке исходит от программного обеспечения Git на git.my_repo_host
, указывая на наличие проблемы в репозитории на ssh://git.my_repo_host:9999/my_repo.git
. Мы можем сказать из-за этой строки:
remote: fatal: bad object refs/pull-requests/101/v2
Слово remote
здесь означает, что ваше программное обеспечение Git передает сообщение, сгенерированное программным обеспечением другого хоста.
Таким образом, удаленный репозиторий нуждается в ремонте или замене. Ваш собственный локальный репозиторий в порядке.
Найдите администраторов git.my_repo_host
и попросите их исправить репозиторий другой машины.
Я подтвердил, что с моим локальным репо все в порядке. После того, как мы попросили нашего сопровождающего репозитория исправить удаленную базу данных репозитория git. Теперь это работает. Больше никаких подробностей, потому что они починили его на своей стороне.
Стоит отметить, что вы диагностировали проблему по строке, которая начинается с remote: fatal:
. Это говорит о том, что ошибка была произведена на удаленной стороне.
@j6t: хорошая мысль, я отмечу это выше.
Что возвращает
git gc
? (при выполнении внутри вашего локального репозитория)