Как уже упоминалось, если вы хотите «тайник для каждой ветви», вы действительно хотите, чтобы новая ветвь отделялась от существующей ветви.
Кроме того, помимо уже упомянутого факта, что тайник позволяет вам перемещаться в ветку, над которой вы работаете, он также позволяет вам переключать ветви до того, как вы все зафиксировали. Это полезно не для сбора вишни в обычном смысле, а для сбора вишни вашей рабочей копии .
F.ex., Работая над веткой функций, я часто замечаю незначительные ошибки или косметические примеси в коде, которые не имеют отношения к этой ветке. Ну, я просто исправлю это сразу. Когда приходит время коммитить, я выборочно фиксирую соответствующие изменения, но не исправления и косметику. Вместо этого я прячу их, что позволяет мне переключиться на мою ветку minor-fixes-on-stable, где я могу затем применить stash и зафиксировать каждое незначительное исправление отдельно. (В зависимости от рассматриваемых изменений, я также еще раз спрятал некоторые из них, чтобы переключиться на другую ветвь функций, где я применяю те .)
Это позволяет мне углубляться в режим программирования, когда я работаю, и не беспокоиться о правильном использовании моего кода. Затем, когда у меня случается умственный перерыв, я могу вернуться и аккуратно отсортировать свои изменения по всем нужным полкам.
Если бы тайник не был глобальным, этот тип рабочего процесса был бы намного сложнее.