Я бы предложил избегать git stash
. Он полон острых угловых коробок.
Если у вас есть git worktree add
, используйте это. У него есть неприятный баг с момента его появления (Git 2.5) до Git 2.15, что означает, что вы должны завершить любую работу, которую вы выполняете в добавленном рабочем дереве, в течение двух недель, а затем удалить добавленное рабочее дерево, но если вы делаете это в программе, вы закончите sh за минуты или в худшие часы, а не недели.
Низкоуровневый метод в ответе Кан будет наиболее эффективный (безусловно), но требует понимания внутренних деталей Git, по крайней мере, до некоторой степени.