Git - оформить ветку отменить локальные изменения - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю над веткой feature, где я добавил и изменил несколько файлов.

В какой-то момент я хотел бы перейти на ветку develop, но я не хочу видеть измененияЯ сделал в feature ветке.

Так я делаю git checkout develop, но изменения все еще есть.Я переключен на ветку develop, но изменения все еще присутствуют.

Я хотел бы выполнить следующее:

  • когда я наберу git checkout develop, я доберусь до developветка и изменения отбрасываются.
  • когда я переключаюсь на feature изменения ветки, которые я сделал в feature, должны быть снова видны.

Единственный способ, которым я понял, был:

  • тайник изменяется с feature
  • на develop
  • и обратно на feature
  • применить тайник

Но мне не нравится способ иметь тайники.Есть ли способ сделать это только с git checkout или без тайника?

1 Ответ

0 голосов
/ 20 февраля 2019

Если вам не нравится использование stash, и у меня лично нет причин не использовать его, вы можете попробовать сделать временный коммит в ветке feature:

# work work work
git add <file1>
# ... and add other files
git commit -m 'temporary commit for some feature'

Затем вы можете переключиться на ветку develop, чтобы делать все, что у вас на уме.Когда вы вернетесь в ветку feature, вы можете либо просто продолжить работу над этим коммитом, либо попытаться вернуться к исходному рабочему состоянию.Чтобы вернуться к тому, как все выглядело, когда вы были в середине работы, вы можете попробовать сделать смешанный сброс:

git reset --mixed <SHA-1 of temporary commit>

Это переместит HEAD вашей ветви назад на один коммит вместе с индексом.Таким образом, у вас останется рабочий каталог, содержащий вашу текущую работу, но без какого-либо фактического коммита в вашей ветке feature.Теперь вы можете завершить текущую функцию и сделать постоянный коммит.

Но обратите внимание, что сам git stash на самом деле реализован под капотом, сделав два (или иногда три) коммита для хранения вашей текущей работы.Итак, мой ответ на самом деле использует похожий подход к тайнику, но с некоторыми отличиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...