Error failed to run repack

As it turned out, Visual Studio had a lock on some of Git's files. Closing Visual Studio resolved the issue. FTR, I'm using the Git source control provider (in

If you were doing some other operation with git, or some git-related operation in a GUI, cancel the operation or close the error, and manually run a git gc, then try your operation again. Basically, on Windows, this message is an indication of contention between the git command line client and some other program.

In my case, the repack had been triggered automatically as part of a git pull. When I got the error, after ruling out a permission issue with a quick sanity check that none of the things that would be launching git processes (IDE, git bash, git GUI) would be running elevated, I went to Process Explorer to find out what process had the file open (Find -> File Handle or DLL), and it found a git.exe that was a parent of the other git.exe process. I’m guessing that there are some locking assumptions in the automatic repack code that aren’t appropriate on Windows, where, by default, opening a file puts an exclusive read/write lock on the file at the OS level.

That was with

$ git --version
git version 1.9.2.msysgit.0

I got the same issue using eclipse . The was accessing git repository through Eclipse as well as git bash.

Solved by running the gc after closing eclipse

Environment

Windows 7

Git 1.8.4.mysysgit.0

Eclipse Kepler SR2

As it turned out, Visual Studio had a lock on some of Git’s files. Closing Visual Studio resolved the issue.

FTR, I’m using the Git source control provider (in the last usable version 0.6.4) in VS2010. Maybe this is part of the cause.

In my case git gc would fail to run repack after enumerating but it was successful when running with some additional options, git gc --aggressive --prune=now.

Сегодня я случайно наткнулся на это, пытаясь запустить Git сборщик мусора:

$ git gc
fatal: bad object refs/remotes/origin/HEAD
error: failed to run repack

Как мне с этим справиться?

10 ответов

Я не понимаю последствий этого, но, как предложено в этом поток , когда я столкнулся с этим, я просто сделал

$ mv .git/refs/remotes/origin/HEAD /tmp

(держите его на всякий случай), а затем

$ git gc

Работал без нареканий; Я не столкнулся с какими-либо проблемами.


265

Manos Nikolaidis
3 Май 2018 в 13:13

Увидев ответ Трентона, я посмотрел на свой .git/refs/remotes/origin/HEAD и увидел, что он также указывает на старую ветку, которая теперь удалена.

Но вместо того, чтобы самому редактировать файл, я попробовал решение Райана:

git remote set-head origin --auto

Он автоматически установил файл в новую ветку, и после этого git gc работал нормально.


123

WilQu
20 Апр 2018 в 17:44

Проблема, с которой я столкнулся (это та же проблема, о которой @Stavarengo упоминал в этот комментарий выше) заключается в том, что удаленная ветвь по умолчанию (develop в моем случае) была удалена, но все еще упоминалась в .git/refs/remotes/origin/HEAD.

Открытие .git/refs/remotes/origin/HEAD в моем редакторе показало следующее:

ref: refs/remotes/origin/develop

Я тщательно отредактировал его, чтобы он указывал на мою новую ветку по умолчанию, и все было хорошо:

ref: refs/remotes/origin/master

Подсказка, которая подсказала мне, заключалась в том, что запуск git prune показал эту ошибку:

> git prune
warning: symbolic ref is dangling: refs/remotes/origin/HEAD


107

Trenton
11 Сен 2017 в 19:08

Слава богу, я нашел это https://makandracards.com/chris-4/54101-fixing-a -git-репо

fatal: bad object refs/remotes/origin/HEAD
error: failed to run repack

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

cat .git/refs/remotes/origin/HEAD

Если он указывает на несуществующую ветку, выполняется:

git remote set-head origin --auto

С последующим

git gc

Исправлю это


48

Thawinwats Uggaravisee
19 Апр 2021 в 16:15

Похоже, ваши символические ссылки могут быть сломаны… Попробуйте заменить его на ветку по умолчанию следующим образом: Например, моей веткой по умолчанию является master.

$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
$ git fetch --prune
$ git gc

Это должно исправить.


27

Conal Da Costa
17 Мар 2020 в 00:57

git update-ref -d [wrong reference here]

Это решит эту проблему.

Для вышеуказанной проблемы используйте следующий код:

git update-ref -d 'refs/remotes/origin/HEAD'

Если вы получаете ошибку с .git, как показано ниже:

error: bad ref for .git/logs/refs/remotes/origin/Dec/session-dynatrace-logs 6

Вы можете скопировать путь, начинающийся с refs, как показано ниже:

git update-ref -d 'refs/remotes/origin/Dec/session-dynatrace-logs 6'


4

Joshua Cleetus
18 Дек 2020 в 17:12

Причиной этого для меня была работа в сжатой папке в Windows. Когда папка была распакована, она повредила файлы пакета, что привело к другим странным проблемам, таким как невозможность удалить несуществующие ветки.

Единственное исправление состояло в том, чтобы стереть рабочий каталог и снова клонировать удаленные репозитории. К счастью, я все еще мог отправлять и получать обновления, чтобы ничего не было потеряно. Теперь все хорошо.


1

Will Strohl
3 Июн 2020 в 04:46

Моя проблема возникла с определенной веткой.
Видимо, справочный файл для ветки был поврежден. Я исправил так.

git касса главная
// Я удалил файл .gitrefsheadsbranch_xpto
git тянуть
git checkout branch_xpto


1

Rafael Pizao
9 Фев 2021 в 19:25

Я столкнулся с этой ошибкой, потому что ветвь по умолчанию была изменена с master на main. Я использовал смесь информации, предоставленной несколькими ответами выше, чтобы решить эту проблему:

cat .git/refs/remotes/origin/HEAD

Возвращается :

ref: refs/remotes/origin/master

Чтобы исправить это, я запустил:

git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main

Я запустил это снова, чтобы перепроверить:

cat .git/refs/remotes/origin/HEAD

Который вернулся:

ref: refs/remotes/origin/main

Затем git gc и git prune работали нормально.


Чтобы увидеть, что происходит, я также пробовал:

git remote set-head origin --auto

Который вернулся:

origin/HEAD set to main

И это действительно решает проблему, автоматически идентифицируя реф.


1

Virtua Creative
10 Ноя 2021 в 15:26

Если вы используете рабочие деревья git, убедитесь, что вы делаете

git worktree prune

Перед запуском

git gc

У меня было повреждено рабочее дерево, и это, похоже, помогло после удаления поврежденного рабочего дерева. git prune сам по себе не работает.


0

JeffP
17 Дек 2019 в 20:46

I. Описание проблемы

Во второй половине дня коллега сообщил, что на Gitlab не может быть создан новый репозиторий.

The form contains the following error:
    Failed to create repository via gitlab-shell

Позвольте мне посмотреть, если что-то не так с сервером GitLab?

Во-вторых, устранение неполадок

Угадай 1. Достаточно ли у этого коллеги полномочий

В этом случае я сначала использовал администратора root, чтобы помочь ему создать новый проект в ios Group, но об этой же ошибке сообщалось, поэтому причина не была

Угадай 2. Что не так с сервером? Приходится смотреть на логи

2.2.1 Просмотр журналов

Ссылка:http://xxxx.xxx.xxxx.xxxx/admin/logs (xxxx.xxx.xxxx.xxxx — это адрес gitlab)

Просмотр [Область администратора] -> [Мониторинг] -> [Журналы] -> [githost.log]

Как администратор root, я проверил текущие журналы сервера GitLab, как показано ниже:

October 20, 2018 09:44 -> INFO -> 'git -c repack.writeBitmaps=false repack -d' in /data/gitlabData/repositories/Android/WatchApp/Self/RedPacketOfIntegral.git

October 20, 2018 11:01 -> INFO -> 'git -c repack.writeBitmaps=false repack -d' in /data/gitlabData/repositories/Android/WatchApp/Z1/Launcher.git

October 20, 2018 11:04 -> INFO -> 'git -c repack.writeBitmaps=true repack -A -d --pack-kept-objects' in /data/gitlabData/repositories/iOS/EKOSDKSpecs.git

October 20, 2018 11:53 -> INFO -> 'git -c repack.writeBitmaps=false repack -d' in /data/gitlabData/repositories/iOS/EKOSDKSpecs.git

October 20, 2018 12:07 -> INFO -> 'git -c repack.writeBitmaps=false repack -d' in /data/gitlabData/repositories/Android/WatchApp/Self/Launcher.git

October 20, 2018 15:25 -> INFO -> 'git -c repack.writeBitmaps=true repack -A -d --pack-kept-objects' in /data/gitlabData/repositories/Android/PhoneApp/XTCWatch.git

October 20, 2018 15:25 -> ERROR -> 'git -c repack.writeBitmaps=true repack -A -d --pack-kept-objects' in /data/gitlabData/repositories/Android/PhoneApp/XTCWatch.git failed:

fatal: sha1 file 'objects/pack/tmp_pack_3VdpAL' write error: No space left on device

October 20, 2018 15:38 -> INFO -> 'git -c repack.writeBitmaps=true gc' in /data/gitlabData/repositories/iOS/CallWatch.git

October 20, 2018 15:39 -> ERROR -> 'git -c repack.writeBitmaps=true gc' in /data/gitlabData/repositories/iOS/CallWatch.git failed:

fatal: sha1 file 'objects/pack/tmp_pack_TUKcET' write error: No space left on device

error: failed to run repack

Из журналов выше видно, что дискового пространства на сервере, на котором работает GitLab, недостаточно.

2.2.2 Просмотр журналов Войдите на сервер, на котором работает Gitlab, через XShell, чтобы проверить состояние диска.

Я проверил диски и, действительно, каталог / data и дисков больше нет.

Затем перейдите к списку ненужных файлов. После очистки ненужных файлов остается доступным 569G.

В это время проверьте дисковое пространство на Gitlab и проверьте [Область администратора] -> [Мониторинг] -> [Информация Sysetm]

В-третьих, пересоберите проект

В настоящее время восстановление проекта возвращается к нормальной жизни.

Под соответствующим созданным журналом установите флажок [Admin Area] -> [Monitoring] -> [Logs] -> [application.log].


Автор: Оуян Пэн добро пожаловать на перепечатку, делиться с другими, является источником прогресса!
Перепечатано, пожалуйста, сохраните оригинальный адрес:https://blog.csdn.net/qq446282412/article/details/83215306
Если вы найдете эту статью полезной, вы можете отсканировать QR-код Alipay и WeChat Pay, как показано на рисунке ниже, чтобы получить бесплатное вознаграждение за эту статью. Ваша поддержка побудит меня продолжать создавать

Понравилась статья? Поделить с друзьями:
  • Error failed to request appinfo update not online or not logged in to steam перевод
  • Error failed to read the downloaded file gmod
  • Error failed to read install path error 234 skyrim что делать
  • Error failed to push some refs to что это
  • Error failed to push some refs to перевод