Я хотел посмотреть, смогу ли я внести изменения в файл, но после этого все файлы репо исчезли. Как восстановить предыдущую версию?
Вот что я сделал (обратите внимание, что я впервые подключаюсь к этому серверу Git). Сначала я инициализирую свой репозиторий:
$ rm -rf .git/
$ git init
$ git remote add origin https://remote.url/myProject.git
$ git commit -m "My first commit"
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
.foundry/
.gitignore
.teamcity/
GitVersion.yml
README.md
config.ini
block.py
view.py
entities.py
nothing added to commit but untracked files present (use "git add" to track)
Затем, поскольку я только изменил entities.py, я добавил его в список для фиксации:
$ git add entities.py
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: entities.py
Untracked files:
(use "git add <file>..." to include in what will be committed)
.foundry/
.gitignore
.teamcity/
GitVersion.yml
README.md
config.ini
block.py
view.py
Git обнаружил изменение в entities.py, поэтому я решил, что все в порядке:
$ git commit -m "entities.py first commit"
[master (root-commit) 1dc09d9] entities.py first commit
1 file changed, 535 insertions(+)
create mode 100644 entities.py
$ git push -f origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 6.64 KiB | 1.66 MiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://remote.url/myProject.git
+ 4a0d8a5...1dc09d9 master -> master (forced update)
Когда я хотел проверить на сервере, сработал ли коммит, все файлы проекта исчезли! Есть только один файл: entities.py. Когда я запускаю git ls-tree, возвращается только один файл:
$ git ls-tree -r master --name-only
entities.py
Как видите, мы потеряли все. Раньше я использовал TFS, и любую ошибку можно было легко откатить за 1 минуту, здесь я потратил часы, пытаясь найти нужную команду в книге Git, но не могу найти, как восстановить предыдущую версию? Можно ли хотя бы откатиться в Git?
Безуспешные попытки решить эту проблему
- Я попробовал этот ответ Как мне отменить большинство последние локальные коммиты в Git? и запустите
git reset HEAD~, но у меня возникла следующая ошибка
fatal: ambiguous argument 'HEAD~': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
- Этот ответ Git - откат к предыдущей фиксации возвращает другое сообщение об ошибке:
$ git push origin HEAD~1:master
error: src refspec HEAD~1 does not match any
error: failed to push some refs to 'https://remote.url/myProject.git'
- В этом ответе не указано, как восстановить отсутствующие файлы: Как мне отменить 'git add' перед фиксацией?