Краткий ответ : Не беспокойтесь, тайники не зависят друг от друга. Перейти на это.
Тематическое исследование с визуальным представлением
Чтобы лучше представить, тайник можно рассматривать как список не связанных коммитов, каждый из которых указывает на разные точки в дереве репо.
См. Гипотетическая ситуация ниже
F---G <<< feature/abc
/
/ H---I <<< bugfix/123
/ / \
A---B---C---D---E---F---J <<< master
\
\
K---L---M <<< feature/xyz
и следующий Гипотетический сценарий
Вы спрятали изменения несколько раз за последние пару дней, пока работали над этими разными ветками.
Допустим, вы прятались три раза:
один раз на feature/abc
во время вашей первой попытки совершения G
, потому что вы вообще не были удовлетворены своим первым подходом, но хотели на всякий случай держать его под рукой.
были прерваны во время работы над исправлением / 123, немного позже после фиксации H
, и пришлось переключать ветки Позже вы вернулись к bugfix/123
, а затем сделали git stash apply
вместо git stash pop
, чтобы сохранить запись в тайнике для последующего повторного использования / проверки.
и наконец
- пришлось снова копить после
L
при работе на feature/xyz
(Операции происходили в таком порядке.)
Результирующая ситуация с тайником
На этом этапе ваш список тайников будет выглядеть как
stash@{0}: WIP on feature/xyz: f1d6b3a unfinished - get rid of var dumps
stash@{1}: WIP on hotfix/123: 94722ae unfinished - css still broken
stash@{2}: WIP on feature/abc: 4fb4785 no good - test T1 failed
но важным моментом является то, что, поскольку запись в тайнике принимает для родителя то, на что указывает коммит HEAD, когда выполняется запись:
L
является родителем f1d6b3a
(назовем его L'
)
H
является родителем 94722ae
(назовем его H'
)
F
является родителем 4fb4785
(назовем его F'
)
который в дереве можно изобразить как
F' <<< stash@{2}
/
F---G <<< feature/abc H' <<< stash@{1}
/ /
/ H---I <<< bugfix/123
/ / \
A---B---C---D------------------E---F---J <<< master
\
\
K---L---M <<< feature/xyz
\
L' <<< stash@{0}
Тогда гораздо легче увидеть, что, хотя они перечислены в вашем stash list
последовательно, на самом деле они не связаны.