В локальной ветви не нужно фиксировать изменения, но нужно переключиться на другую ветку
Я работаю над филиалом на и функция/задача не выполнена. Тогда мне нужно переключиться на другую ветку B для быстрого решения. Когда я пытаюсь включить другую ветку, Git заставляет меня сохранять локальные изменения, иначе я потеряю все локальные изменения.
Мне нужно зафиксировать мой неполный код. Есть ли способ переключаться между несколькими ветвями без фиксации и потери кода? Или есть лучший способ справиться с ситуацией?
2 ответов
один вариант, как mipadi показывает, просто использовать git stash
.
другой вариант - просто зафиксировать текущую незавершенную работу, переключить ветви, а затем, когда вы будете готовы переключиться обратно, выполните смешанный сброс к предыдущей фиксации:
# While working on "feature" branch,
# you suddenly need to go work on a hotfix:
$ git commit --all --message "Backup my feature work"
$ git checkout -b hotfix master
# You did your hotfix, and are ready to go back to feature
$ git checkout feature
$ git reset head^
git reset head^
выполнит смешанный сброс до фиксации до фиксации резервной копии, и все изменения, внесенные в фиксацию резервной копии, будут восстановлены в вашей рабочей копии. От официальная документация ядра Linux для git reset
(выделено мной):
сбрасывает индекс, но не рабочее дерево (т. е. измененные файлы сохраняются, но не помечены для фиксации) и сообщает, что не была обновлена. Это действие по умолчанию.
можно использовать git stash
, который сохранит ваши изменения без создания фиксации.1
во-первых, притон изменения:
$ git stash
затем переключитесь на другую ветку:
$ git checkout branch-B
когда вы читаете, вернитесь в исходное филиала и unstash изменения:
$ git checkout branch-A
$ git stash pop
см. документацию, связанную выше для получения более подробной информации и сведений о дополнительном использовании случаи.
1 технически это создает фиксацию, но git stash
использует некоторую магию, так что вы на самом деле посмотреть фиксация, и инструменты Git знают, как правильно обращаться с этими псевдо-фиксациями.