Intereting Posts
Как передать программно сгенерированный список файлов в `git filter-branch`? Git: Как зафиксировать удаленный вручную файл? Организация репозитория Git / Gerrit для плагинов Eclipse Как отделить сообщение в блоге в другом репозитории git при создании веб-сайта с использованием статического генератора сайтов? Каков самый простой способ получить список конфликтующих файлов? Доступ к учетным данным Jenkins через Groovy webpack, val-loader – get git commit hash и встроить его в окно github git слияние ветвей Как использовать репозиторий subversion в качестве шаблона для новых проектов? Является ли адаптер SVNKit Client 1.8.12.1 совместимым с библиотекой SVNKit 1.9.0.r10652 Комментарий github, полученный по электронной почте, не будет отображать блок кода Git push – не является репозиторием git (ssh указывает на неправильный каталог) Обновлено с VS 2008 до VS 2010, проверено в SVN, все еще предлагая обновить Может ли Drools 6 Workbench нажать на удаленный репозиторий git? Чтобы подключиться к Git, у Ruby было бы преимущество перед c #?

Как восстановить индекс после появления git stash / git stash?

Добавив некоторые изменения в индекс с помощью git add -p, я выпустил git stash, но забыл добавить -keep-index. Затем я тупо сделал пот git stash, и все мои изменения в индексе исчезли. Есть ли способ вернуть индекс в состояние до git stash?

Когда вы только что сделали git stash pop , последняя строка на выходе:

 Dropped refs/stash@{0} (ca82a6dff817ec66f44342007202690a93763949) 

Если вы потеряли его, см. Как восстановить упавший штамп в Git? найти хеш фиксации.

Когда у вас есть хэш, либо :

  • Отбросить все текущие изменения (прикладной тайник):

    git reset --hard

    И повторите попытку с помощью своего идентификатора, на этот раз с индексом:

    git stash apply ca82a6d --index

  • Сбросьте только индекс, точка здесь заключается в том, что индекс сохраняется как второй родительский штамп:

    git reset ca82a6d^2 .

    Обратите внимание на точку в конце. Если вы не укажете его, он также переместит HEAD в индекс (индекс появится как фиксация). В этом случае запустите git reset --soft HEAD@{1} чтобы вернуть HEAD в его предыдущую позицию.

Это сделает работу:

 git stash apply --index 

Изменить . Учитывая, что индекс уже потерян, вы должны запустить git fsck --unreachable и проверить последние коммиты, которые он дает. Вы должны уметь видеть свой потерянный индекс. После этого вы можете git cherry-pick .