Как вернуть спрятанные изменения без разрешения конфликтов слияния git pull - PullRequest
0 голосов
/ 10 октября 2018

У меня есть три ветки, ветвь a, b и ветвь HotFix.

Я работал над веткой HotFix, где решал проблему, затем мне позвонили на другую работу,Мне нужно переключиться на ветку b.Я спрятал свои текущие изменения ветки и затем я делаю git checkout b после этого git pull origin b.

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


Что я думаю, что ищу git unpull или git reverse pull.

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вам нужно выполнить две операции.

  1. Прервать слияние

    Вы можете сделать это с помощью

    • git merge --abort;или
    • git reset HEAD --hard (в этом нет необходимости
  2. Получите свою скрытую работу

    1. Оформить заказ HotFix с помощью git checkout hotfix, а затем
    2. Применить тайник с помощью git stash apply.

Удачи!

0 голосов
/ 10 октября 2018

Команда, которую вы запустили, была git pull origin b: это комбинация двух команд:

  • сначала git fetch origin b обновить локальную ветвь с именем origin/b,
  • , затем git merge origin/b пытается объединить изменения, извлеченные на первом этапе, с локальной ветвью b.

Конфликты возникают на втором этапе: объединение.Пока они конфликтуют, слияние не завершено, поэтому вы можете отменить команду git merge --abort.

Если по какой-то причине слияние закончилось, вы все равно можете отменить его, вернувшись на один шаг назад в истории.с помощью команды git reset --hard HEAD^.

Короче говоря, когда вы находитесь на ветке b: git merge --abort должно работать, а если нет, git reset --hard HEAD^ будет работать.

...