На жаль, це трапляється і зі мною досить регулярно, і я використовую, git stashякщо раніше зрозумів свою помилку git commitі використовую git cherry-pickінакше, обидві команди пояснюються досить добре в інших відповідях
Я хочу додати пояснення щодо git checkout targetBranch: ця команда збереже ваш робочий каталог та поетапний знімок лише у тому випадку, якщо targetBranch має ту саму історію, що і ваша поточна гілка
Якщо ви ще не здійснили своїх змін, просто використовуйте git checkout, щоб перейти до нової гілки, а потім виконати їх нормально
Заява @ Amber не є хибною, коли ви переходите до newBranch , git checkout -b newBranchстворюється новий покажчик, який вказує на те саме, що і ваш поточний відділ.
Насправді, якщо у вас виникла інша гілка, яка ділиться історією з вашою поточною філією (обидві точки в одному і тому ж фіксації), ви можете "перемістити свої зміни"git checkout targetBranch
Однак зазвичай різні гілки означають різну історію, і Git не дозволить вам перемикатися між цими гілками з брудною робочою директорією або областю постановки. у такому випадку ви можете виконати git checkout -f targetBranch(чисті та викидні зміни) або git stage+ git checkout targetBranch(очистити та зберегти зміни), просто запущений git checkout targetBranchбуде видавати помилку:
Помилка: Ваші локальні зміни в наступні файли будуть перезаписані під замовлення: ... Введіть свої зміни або сховіть їх, перш ніж перемикати гілки. Аборти