Как переместить ветку на слудующий коммит?

       c2-c4
c0-c1<
      c3-c5-c6

У меня ветка main находится на c1. Её нужно переместить на коммит с6. Как это сделать?


Ответы (2 шт):

Автор решения: Komdosh

Можно ресетнуть

git reset c6

где c6 это хэш коммита. Если надо запушить результат, то при выполнении операции reset лучше использовать git push origin --force

Замечание по поводу push --force

→ Ссылка
Автор решения: shellrc

Лучше поздно, чем никогда ;)

Передвинуть указатель ветки main на коммит c6:

git branch -f main c6

-f нужен т.к. main cуществует

Где находиться 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
→ Ссылка