Я удалил все свои домашние задания с помощью git сброса, могу ли я это исправить - PullRequest
0 голосов
/ 02 августа 2020

Я не знаю, правильный ли это формат для этого вопроса или есть ли какие-либо дубликаты, но я думаю, что просто случайно сбросил весь свой репозиторий git. Есть ли команда, которая может отменить это?

Я сделал git сброс файла, который я добавил, думая, что он просто удалит его из этого добавления. Я совершил это и подтолкнул. Теперь весь мой репозиторий git исчез, за ​​исключением кода, который я только что отправил.

git reset RadixSort.java
git add *my homework*
git commit -m "BONUS_HW"
git push origin master -f

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Сначала запустите

$ git log.

Это отобразит все сделанные вами коммиты.

  1. Найдите нужную фиксацию.
  2. Скопируйте соответствующий Номер SHA
  3. git reset --hard НОМЕР SHA
  4. pu sh ваш код

Пример: я хочу сбросить репо до фиксации ниже ...

  commit 8b665c15673b00ffe833572e1f325452a93f8d15
  Author: Alan <alan@remote.com>
  Date:   Wed Jun 10 11:46:11 2020 -0500

       rename alias on commands.txt

Шагов

$ git reset --hard 8b665c15673b00ffe833572e1f325452a93f8d15
$ git add *
$ git commit -m "revert to 8b665c15673b00ffe833572e1f325452a93f8d15"
$ git push -f origin YOUR WORKING BRANCH
0 голосов
/ 02 августа 2020

Сначала сделайте копию всего репозитория (cp -R /path/to/your/repo /path/to/backup/dir).

Теперь работайте с исходным репозиторием. Предполагая, что вы были в ветке master, выполните git reflog master. Вы должны увидеть что-то вроде этого

6ebc064 (HEAD -> master) master@{0}: reset: moving to 6ebc0647a4347d411ea99ded0f9eeb94a5f622bd
ea36a86 master@{1}: commit: Adds README
9065d84 master@{2}: commit: Renames README
1d334db master@{3}: commit: Removed duplicate READMEs
.
.
.

6ebc064 - это то место, где вы сейчас находитесь. ea36a86 - это место, где раньше была ваша ветка master. Теперь вы можете выполнить сброс до этого коммита, используя git reset --hard ea36a86, и он должен привести дерево к ситуации, в которой оно было до того, как вы выполнили сброс. Как только это произойдет, просмотрите каталог и убедитесь, что все в порядке. Если это так, git push --force ветка и все готово.

...