LINUX.ORG.RU

Восстановить все удалённые файлы в git

 


0

2

Добрый день! У меня есть git-репозиторий. Подскажите, пожалуйста, как можно восстановить последние версии всех удалённых из него файлов? Желательно, с комментариями к последним перед удалением коммитам. Заранее спасибо.

★★

Последнее исправление: Norong (всего исправлений: 1)

Ответ на: комментарий от FIL

Да. Там недолго. Всего у меня там 80 коммитов.

Norong ★★
() автор топика
Последнее исправление: Norong (всего исправлений: 1)
Ответ на: комментарий от Norong

Компьютер сгорит, и тебе будет уже не до удалённых файлов.

aedeph_ ★★
()

git reflog не помогает?

mashina ★★★★★
()

git сам такое не умеет, но можно собрать нечто подобное:

#!/bin/bash

git log --diff-filter=D --summary --name-only --format= |
while read file; do
    sha="$(git rev-list --full-history -n 1 HEAD -- "$file")"
    if [ -n "$sha" -a ! -e "$file" ]; then
        mkdir -p "$(dirname "$file")"
        (git show -s $sha^ | sed 's!^!// !'; git show "$sha^:$file") > "$file"
    fi
done

По идее, оно вытаскивает самые последние версии этих файлов и пишет информацию о коммите перед коммитом удаления в начало. У меня оно не нашло файлы с " и ' в имени, но то редкость.

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.