На жаль, це трапляється і зі мною досить регулярно, і я використовую, 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
буде видавати помилку:
Помилка: Ваші локальні зміни в наступні файли будуть перезаписані під замовлення: ... Введіть свої зміни або сховіть їх, перш ніж перемикати гілки. Аборти