потерянные изменения git stash

вот что произошло: Я был на ветке " А " и сделал git stash на этой ветке. Затем я переключился на другую ветку "Б". Я вернулся к ветке "А", но не сделал git stash pop. Я переключился на главную ветку, а затем снова на ветку "а". Я пытаюсь пойти git stash pop сейчас, но, похоже,не могу вернуть свои изменения.. Мне нужно восстановить этот код, но всякий раз, когда я делаю git stash pop, мои изменения файла не перечислены. Я не совершал никакого кода.

есть ли способ восстановить изменения, которые я сделал? буду очень признателен за любую помощь в этом отношении.

3 ответов


тайники должны быть доступны для просмотра через

git stash list

или

gitk --all

и git stash не хранит неотслеженные файлы. Если вы сделали это и впоследствии сделали git checkout --force другой ветви, чтобы перезаписать неотслеженные файлы с отслеживаемыми в другой ветви, вы потеряли это содержимое. Рекомендуемый способ заначки-с

git stash -u

это предотвратит потери этого типа.


мы также столкнулись с той же проблемой. Итак, вот как мы восстановили потерянные изменения:

  1. вернитесь в отделение B.

    git checkout B

  2. использовать git reflog возможность чесотки reflog информации.

    git reflog --all

    выход:

    f332d5c refs / stash@{0}: WIP на B: aa1d0c1 XYZ фиксация сообщение

  3. теперь переключитесь на ветвь A с помощью git checkout A

  4. наконец, чтобы восстановить потерянные изменения.

    git stash apply f332d5c


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

вот что случилось со мной: я спрятал свои вещи, переключился с " dev " на "master", чтобы быстро сделать исправление. Когда я нажал исправление для master, я не заметил, что я также добавил свои новые файлы, предназначенные для dev в master branch-я тоже предполагал, что stash включал эти файлы.