Как я могу отменить git reset --hard HEAD ~ 1?

вы не можете запустить метод run (). Всякий раз, когда вы начинаете свой поток, используя thread.start (), затем вызывается метод run () и выполняет дальнейшую операцию.

1022
задан jub0bs 20 December 2014 в 15:41
поделиться

4 ответа

Pat Notz корректен. Можно вернуть фиксацию, пока это было в течение нескольких дней. мерзавец только собирает "мусор" приблизительно после месяца или поэтому если Вы явно не говорите ему удалять более новые блобы.

$ git init
Initialized empty Git repository in .git/

$ echo "testing reset" > file1
$ git add file1
$ git commit -m 'added file1'
Created initial commit 1a75c1d: added file1
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file1

$ echo "added new file" > file2
$ git add file2
$ git commit -m 'added file2'
Created commit f6e5064: added file2
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file2

$ git reset --hard HEAD^
HEAD is now at 1a75c1d... added file1

$ cat file2
cat: file2: No such file or directory

$ git reflog
1a75c1d... HEAD@{0}: reset --hard HEAD^: updating HEAD
f6e5064... HEAD@{1}: commit: added file2

$ git reset --hard f6e5064
HEAD is now at f6e5064... added file2

$ cat file2
added new file

Вы видите в примере, что file2 был удален в результате жесткой перезагрузки, но был отложен на месте, когда я сбросил через то, чтобы повторно пороть.

1568
ответ дан jfs 20 December 2014 в 15:41
поделиться

То, что Вы хотите сделать, должно определить sha1 фиксации, к которой Вы хотите восстановить. Вы можете получить sha1 путем исследования повторно пороть (git reflog) и затем выполнения

git reset --hard <sha1 of desired commit>

, Но не ожидаете слишком долго... после нескольких недель мерзавец будет в конечном счете видеть, что фиксация как не имеющая ссылки и удаляет все блобы.

340
ответ дан Pat Notz 20 December 2014 в 15:41
поделиться

Возможно восстановить его, если Мерзавец еще не собрал "мусор".

Получают обзор свисания фиксаций с fsck:

$ git fsck --lost-found
dangling commit b72e67a9bb3f1fc1b64528bcce031af4f0d6fcbf

Восстанавливают повисшую фиксацию с переосновой:

$ git rebase b72e67a9bb3f1fc1b64528bcce031af4f0d6fcbf
95
ответ дан sverrejoh 20 December 2014 в 15:41
поделиться

Если Вы еще не собрали "мусор" свой репозиторий (например, использование git repack -d или git gc, но обратите внимание, что сборка "мусора" может также произойти автоматически), то Ваша фиксация все еще there †“, это больше не просто достижимо через ГОЛОВУ.

можно попытаться найти фиксацию путем просмотра вывода git fsck --lost-found.

Более новые версии Мерзавца имеют что-то позвонившее "повторно пороть", которое является журналом всех изменений, которые внесены в судей (в противоположность изменениям, которые внесены в содержание репозитория). Так, например, каждый раз Вы переключаете ГОЛОВУ (т.е. каждый раз, когда Вы делаете git checkout для переключения ответвлений), который будет зарегистрирован. И, конечно, Ваш git reset также управлял ГОЛОВОЙ, таким образом, это было также зарегистрировано. Можно получить доступ к более старым состояниям судей похожим способом, которым можно получить доступ к более старым состояниям репозитория, при помощи @ знак вместо ~, как git reset HEAD@{1}.

Это взяло меня некоторое время для понимания то, что различие между ГОЛОВОЙ {1} и HEAD~1, таким образом, вот немного объяснения:

git init
git commit --allow-empty -mOne
git commit --allow-empty -mTwo
git checkout -b anotherbranch
git commit --allow-empty -mThree
git checkout master # This changes the HEAD, but not the repository contents
git show HEAD~1 # => One
git show HEAD@{1} # => Three
git reflog

Так, HEAD~1 означает, "переходят к фиксации перед фиксацией, которые ВОЗГЛАВЛЯЮТ в настоящее время точки в", в то время как HEAD@{1} означает, "переходят к фиксации, которые НАПРАВЛЯЮТСЯ, указал, прежде чем это указало, где это в настоящее время указывает на".

, Который легко позволит Вам находить свою потерянную фиксацию и восстанавливать ее.

19
ответ дан Jörg W Mittag 20 December 2014 в 15:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: