Я начал вносить изменения в мою кодовую базу, не понимая, что я был на старой ветке темы. Чтобы передать их, я хотел спрятать их, а затем применить их к новой ветке от мастера. Раньше я git stash pop
переносил изменения незавершенного производства в эту новую ветку, забывая, что я не вносил новые изменения в master до создания новой ветки. Это привело к множеству конфликтов слияния и потере чистого тайника моих изменений (так как я использовал pop).
Как правильно воссоздать новую ветку, как я могу восстановить свои спрятанные изменения, чтобы применить их правильно?
git stash drop
как последний шаг, чтобы избавиться от нежелательного тайника из # 2.git stash pop
: «Применение состояния может привести к сбою при конфликтах; в этом случае оно не удаляется из списка хранилищ. Вам необходимо разрешить конфликты вручную иgit stash drop
впоследствии вызвать их вручную». ( git-scm.com/docs/git-stash )К счастью
git stash pop
, не меняет тайник в случае конфликта!Так что не о чем беспокоиться, просто очистите ваш код и попробуйте снова.
Скажем, ваша кодовая база была чистой до того, вы можете вернуться в это состояние с помощью:
git checkout -f
Затем выполните то, что вы забыли, например,
git merge missing-branch
после этого просто
git stash pop
снова запустите, и вы получите тот же тайник, который конфликтовал раньше.Внимание: тайник безопасен, однако незафиксированные изменения в рабочем каталоге - нет. Они могут запутаться.
источник
git stash pop
это попыткой автоматического слияния, конфликтовал и сохранил это.git stash pop
так часто, как вам нужно, до тех пор, пока он не закончится без конфликта. Так что после вашего конфликта, да, рабочий каталог в беспорядке, однако, вы можете очистить его и вызватьgit stash pop
снова.git checkout -f
:!Инструкции здесь немного сложнее, поэтому я собираюсь предложить что-то более простое:
git reset HEAD --hard
Отменить все изменения в текущей ветке...
Выполнять посредническую работу по мере необходимостиgit stash pop
Снова откройте тайник позже, когда будете готовыисточник
должен работать, если ваше предыдущее состояние чистое.
источник