Каждый .gz файл имеет заголовок с названием файла... Попробовать head test.svn.gz
и head test2.svn.gz
A git pull
не перезапишет локальные изменения, если Вы не используете git add
прежде. Даже в этом случае можно все еще восстановить данные.
Когда Вы вышли git add
перед получением по запросу:
mkgithub blub
cp test.sh blub/
cd blub/
git add test.sh
git pull
Получение по запросу удалит test.sh
. Это только сделает это, если у Вас не будет фиксации в локальном repo. После добавления фиксации это не удалит test.sh
(мерзавец или игнорирует его или сообщает о конфликте слияния),
Файл не потерян. Это находится все еще в репозитории Мерзавца как повисший блоб.
Восстановить файл:
$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (401/401), done.
dangling blob 541060d8292ff808c9715265d063f1bae220da7c
$ git show 541060d8292ff808c9715265d063f1bae220da7 > test.sh
Это работает, пока Вы не вышли git gc --prune=now
впоследствии.
Я пытался делать новый репозиторий с GitHub удаленным:
$ mkgithub ~/dev/cr2meta2jpg
Initialized empty Git repository in /home/username/dev/cr2meta2jpg/.git/
Я засунул файл в папку, не отслеживая его:
$ mv test.sh ~/dev/cr2meta2jpg/cr2meta2jpg.sh
$ cd ~/dev/cr2meta2jpg/
$ ls
cr2meta2jpg.sh
И затем попробованный для получения по запросу от GitHub:
$ git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From github.com:l0b0/cr2meta2jpg
* [new branch] master -> origin/master
$ ls
README.md
cr2meta2jpg.sh
был удален, таким образом, похоже, что ответ - да.
git fsck --lost-found
. Это сохранит повисшие блобы к.git/lost-found/other
. Так или иначе имена файлов потеряны. Имена файлов будут хешами объектов. – JonnyJD 18.12.2012, 15:43