Страницы

Поиск по вопросам

четверг, 2 мая 2019 г.

Как восстановить проект имея только папку .git?

Как восстановить проект имея только папку .git?
Размер папки нормальный (не ноль) и git log выводит все коммиты.


Ответ

вы можете резетнуться на коммит (git reset --hard) или сделать git checkout . в корне репозитория - если не закоммитили удаление всех файлов. если закоммитили - вам надо резетнуться на последний коммит (git log)
в приведенном примере мы создаем репу, добавляем файл, удаляем, остается только папка .git, восстанавливаемся из нее обоими способами. (до нового коммита и с помощью резета)
-user~/temp$ mkdir gtest -user~/temp$ cd gtest -user~/temp/gtest$ git init Initialized empty Git repository in /home/user/temp/gtest/.git/ -user~/temp/gtest (master)$ touch 123 -user~/temp/gtest (master)$ echo 123 > 123 -user~/temp/gtest (master)$ kommit done ## Initial commit on master ?? 123 [master (root-commit) d6089c5] done 1 file changed, 1 insertion(+) create mode 100644 123 -user~/temp/gtest (master)$ rm 123 -user~/temp/gtest (master)$ git status On branch master Changes not staged for commit: (use "git add/rm ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory)
deleted: 123
no changes added to commit (use "git add" and/or "git commit -a") -user~/temp/gtest (master)$ git checkout . -user~/temp/gtest (master)$ git status On branch master nothing to commit, working directory clean -user~/temp/gtest (master)$ ls 123 -user~/temp/gtest (master)$ git log commit d6089c549be7b2e922f1d1b31960ee34166d1ae6 Author: user <“user@user.com”> Date: Sat Jul 30 2016 +0300
done -user~/temp/gtest (master)$ git reset --hard d6089c549be7b2e922f1d1b31960ee34166d1ae6 HEAD is now at d6089c5 done -user~/temp/gtest (master)$ ls 123 -user~/temp/gtest (master)$
P.S. команда kommit это алиас типа
function gitAddAndCommit(){ git status -bs git add . ; git commit -m "$1" --no-verify } alias kommit=gitAddAndCommit
P.P.S. (master) в prompt - это имя текущей ветки, что-то в этом духе. Очень удобная штука.

Комментариев нет:

Отправить комментарий