Элегантно переключаемая ветка с незафиксированными изменениями - PullRequest
0 голосов
/ 09 июня 2018

При параллельной работе с несколькими ветвями функций мне нужно stash или commit локальных изменений, прежде чем я смогу переключиться на другую ветку.Я думаю, что тайник и коммит кажутся мне довольно неуклюжими.Есть ли более элегантная альтернатива?

Почему stash неуклюже: я работаю над несколькими ветками и время от времени переключаюсь между ними.Иногда я забываю всплыть или вытащить неправильный тайник.

Почему commit неуклюже: мои изменения находятся в стадии разработки.Они не полны и не должны быть совершены.То, что я в итоге делаю, это сначала фиксирую их (потому что я вынужден), а затем делаю мягкий сброс, чтобы мой предыдущий коммит вернулся к «локальным изменениям».Или иногда я позволяю временным коммитам накапливаться и позже делаю интерактивную перебазировку.

То, что я ищу: как «умный тайник».Stash локальные изменения автоматически, когда я переключаюсь на другую ветку, и выталкиваю тайник, связанный с этой веткой, автоматически, когда я переключаю обратно.Можно ли это сделать?

1 Ответ

0 голосов
/ 18 мая 2019

Другой подход заключается в использовании git worktree, который позволяет вам иметь несколько рабочих каталогов

Таким образом, переключение ветвей может означать просто выход из текущегонезавершенная работа и .. изменение папки.
Нет необходимости автоматически сохранять / фиксировать.

Недостатками этого подхода могут быть:

  • дисковое пространство (есливаш проект действительно огромный )
  • инструментальная конфигурация (ваша IDE должна загружать один и тот же проект из разных путей, что обычно возможно через рабочее пространство IDE)
...