Нещодавно я знову зіткнувся з цією проблемою. Минуло час, коли я востаннє працював з підмодулями, і дізнавшись більше про git, я зрозумів, що достатньо просто перевірити галузь, яку ви хочете здійснити. Git збереже робоче дерево, навіть якщо ви його не приховуєте.
git checkout existing_branch_name
Якщо ви хочете працювати в новій галузі, це має працювати для вас:
git checkout -b new_branch_name
Оформлення каси не вдасться, якщо у вас є конфлікти в робочому дереві, але це має бути досить незвично, і якщо це трапиться, ви можете просто сховати його, випустити його і вирішити конфлікт.
Порівняно з прийнятою відповіддю, ця відповідь заощадить виконання двох команд, які дійсно не займуть так довго часу, щоб виконати. Тому я не прийму цю відповідь, якщо вона дивом не отримає більше відгуків (або принаймні близьких), ніж прийнята на даний момент відповідь.