Как переместить ветку на слудующий коммит?
c2-c4
c0-c1<
c3-c5-c6
У меня ветка main находится на c1. Её нужно переместить на коммит с6. Как это сделать?
Ответы (2 шт):
Можно ресетнуть
git reset c6
где c6 это хэш коммита. Если надо запушить результат, то при выполнении операции reset лучше использовать git push origin --force
Лучше поздно, чем никогда ;)
Передвинуть указатель ветки main на коммит c6:
git branch -f main c6
-f нужен т.к.
maincуществует
Где находиться HEAD неизвестно, поэтому, на всякий случай, его можно передвинуть туда же:
git checkout c6
При этом, или уже, у вас состояние detached HEAD (отделенный HEAD)
Это когда HEAD не указывает на указетель ветки, хотя они могут быть на одном коммите. При создании новых коммитов,
HEADперемещается на новый коммит, аmainнет.
Что бы вернуть HEAD на main выполните следующую команду:
git checkout main
Или, не важно где сейчас находяться main и HEAD, возможно на разных коммитах, вы можете передвинуть main на с6, а HEAD на main одной командой:
git checkout -B main с6