Якщо ви ще не взяли на себе жодних зобов'язань, достатньо було б лише (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