Якщо ви ще не взяли на себе жодних зобов'язань, достатньо було б лише (1: відділення) та (3: замовлення).
Або в одній команді:git checkout -b newBranch
Як згадується на git resetсторінці чоловіка :
$ git branch topic/wip # (1)
$ git reset --hard HEAD~3 # (2) NOTE: use $git reset --soft HEAD~3 (explanation below)
$ git checkout topic/wip # (3)
- Ви домовились про деякі зобов'язання, але розумієте, що вони передчасно перебувати у відділенні "
master". Ви хочете продовжувати шліфування їх у темі, тому створіть topic/wipгілку " " від поточного HEAD.
- Перемотайте
masterгілку, щоб позбутися цих трьох комітетів.
- Перейдіть на "
topic/wip" відділення та продовжуйте працювати.
Примітка: через "руйнівний" ефект git reset --hardкоманди (він скидає індекс і робоче дерево. Будь-які зміни відслідковуваних файлів у робочому дереві, оскільки <commit>вони відкидаються), я б краще пішов з:
$ git reset --soft HEAD~3 # (2)
Це дозволило б переконатися, що я не втрачаю жодного приватного файлу (не додається до індексу).
Ця --softопція взагалі не торкнеться файлу індексу та робочого дерева (але скидає голову <commit>, як і у всіх режимах).
З Git 2.23+ , то нова командаgit switch створить філію в одному рядку (з тим же роду reset --hard, так що стережіться його дії):
git switch -f -c topic/wip HEAD~3