Вы можете сделать следующее:
git checkout --detach
git reset --soft master
git checkout master
Объяснение:
Если вы находитесь на ветке debug
и сделаете git reset --soft master
, вы бы покинули свое рабочее деревои индекс не тронут и перейти к фиксации master
указывает на.Проблема в том, что debug
также будет сброшен в этот коммит.Таким образом, ваши коммиты на debug
«потеряны» (ну, не совсем, но они больше не доступны напрямую), и вы все еще находитесь на ветке debug
.
Чтобы предотвратить перемещение git reset
debug
но все же устанавливая HEAD
для коммита master
, вы сначала git checkout --detach
указываете HEAD
непосредственно на ваш текущий коммит (см. man git-checkout
, раздел «DETACHED HEAD»),Затем вы можете выполнить сброс, не касаясь ветви debug
.
Теперь HEAD
указывает непосредственно на коммит, на который указывает master
, т.е. он все еще отсоединен.Вы можете просто git checkout master
присоединиться к master
и теперь готовы к фиксации в ветке master
.