последний коммит был commit-1 (условное название). Я сделал от этого коммита новую ветку, поменял код, заиндексировал всё через git add . и случайно не сохранил всё в коммит, а сделал git commit —amend, в результате чего все изменения влились в последний коммит commit-1, а не в новый для новой ветки. Как-то можно перенести все изменения правильно в новый коммит, чтобы не нарушилась история?
Запоминаем хэш коммит Хэда git checkout origin/main git apply | git diff origin/main..<хэш того коммита> git add . git commit (в этот раз без амменда)))) git push -f origin HEAD:refs/heads/<новая ветка> после этого локальную ветку можно нафиг удалять - и брать из ремоута))
Не так, amend создал новый коммит и теперь он у вас ветка main. Но предыдущий коммит никуда не делся. На новом коммит определите новую ветку, а main перекиньте на предыдущий. ПС: В ветке не может быть ни первого, ни последнего коммита, ветка – это коммит, а определённый коммит – ветка.
Следующий шаг – подключиться удалённо и всё сделать самому. Образовательный эффект – 0. :)
как-то многовато-шагов берем уже созданный с amend коммит, ребейзим на commit-1, в процессе разруливаем конфликт (если есть) и правим commit message (если надо). всё работает
Обсуждают сегодня