Из vim
:
:set ruler
Получить его постоянно, в Вашем vim
конфигурационный файл, добавляет это без :
:
set ruler
Все фиксации и файлы, на которые они ссылаются, были бы сохранены как объекты в objects
каталог. Мерзавец создает тех как только для чтения, таким образом, они должны все все еще присутствовать.
Для восстановления я советовал бы создавать новый, пустой репозиторий и копировать содержание поврежденного репозитория objects
каталог в тот из нового. Это должно получить Вас к точке, где мерзавец, по крайней мере, распознает, что это - репозиторий, и это будет иметь все Ваши объекты. Работа с копией также поможет постараться не наносить еще больше ущерба при попытке починить вещи.
Shell управляет для создания временного репозитория и копии по объектам:
git init /tmp/recovery
cd /tmp/recovery
cp -r /path/to/broken/repo/.git/objects .git
После того как это сделано, Вы могли использовать git fsck
получить список объектов, на которые не ссылается ничто. Это должно включать всех глав филиала, но это также включало бы любые фиксации, которые были сделаны устаревшими git commit --amend
или путем перебазирования.
Так как у Вас все еще есть каталог журналов, который, вероятно, будет еще большей справкой. Должен быть a logs/refs/heads/<branch>
файл для каждого ответвления, которое Вы имели. Второй столбец последней строки будет содержать идентификатор фиксации, которая была во главе того ответвления, когда удаление было сделано. Должен также быть logs/HEAD
с той же информацией для того, где ГОЛОВА была, но если Вы не работали с отдельной ГОЛОВОЙ, вероятно, лучше просто восстановить ответвления и затем контроль ответвление обычно.
Для каждого ответвления, что Вы хотите восстановить Вас, может работать:
git branch <name> <commit_id>
После того как Вы восстановили ответвления, которые можно скопировать по файлу конфигурации, и необходимо быть справедливо близко к тому, где Вы были с последней фиксации.