сброс git --hard происхождение/мастер сбой
Попытка отменить изменения на сервере и сделать его точно таким же, как origin/master:
git fetch --all
git reset --hard origin/master
Я делал это раньше на одном и том же репо без проблем, но на этот раз он терпит неудачу со следующим:
fatal: Could not reset index file to revision 'origin/master'
Попробовали следующее:
-
удалить индекс и сбросить, как предлагается здесь:
rm .git/index
git reset
-
также предложил здесь, что некоторый процесс может иметь блокировку на.git\index. Этот процесс убийства, а затем выполнение git reset
может исправить его, но не уверен, как проверить, что что-то блокирует файл удаленно. Также кажется, что удаление индексного файла и сброс имели бы такой же эффект.
Потеря моего ума. Было бы очень полезно помочь.
Ответы
Ответ 1
У меня была та же проблема, которая всегда приводила к сумасшедшей причине reset --hard
, но, похоже, у рабочего дерева было много различий с моей целевой веткой.
У меня не было времени выкопать это, но нашел это случайно:
Сначала запустите git gc
чтобы выполнить сборку мусора. Он удалит ненужные файлы и оптимизирует локальный репозиторий (более подробную информацию о git gc
можно найти здесь).
Затем простой reset
и, наконец, reset --hard
до нужной ветки.
$ git gc
$ git reset
$ git reset --hard <target_branch>