#git #git-rebase #git-interactive-rebase
#git #git-перебазирование #git-interactive-перебазирование
Вопрос:
Я нахожусь в интерактивной перебазировке и отметил коммиты, на которые мне нужно более внимательно посмотреть с edit
помощью ( e
) теперь, просматривая коммиты, я понимаю, что некоторые коммиты необходимо удалить / удалить. Какой правильный коммит для этого в интерактивном режиме?
В настоящее время я выполняю следующие команды:
$ git reset HEAD^
$ git checkout -- <File> # <- here I list all of the files that need to be reset
$ git rebase --continue # this complains that I have to perform git commit --allow-empty or git reset
# since I don't want the empty commit I do …
$ git reset
$ git rebase --continue
Это очень долго. Итак, я попытался
$ git reset --hard HEAD^
$ git rebase --continue
Но это приводит к конфликту слияния.
Итак, каков самый простой способ удалить текущую фиксацию, находясь в режиме редактирования интерактивной перебазировки?
Ответ №1:
Итак, каков самый простой способ удалить текущую фиксацию, находясь в режиме редактирования интерактивной перебазировки?
Для меня самый простой способ, безусловно, — это записать коммит, который я хочу удалить (строка темы и любые другие идентификационные метки), завершить интерактивную перебазировку и начать новую интерактивную перебазировку и пометить коммит как «отбрасывание». Нет необходимости делать все это сразу!
Ответ №2:
Если git reset --hard
вы также теряете изменения текущей фиксации, отсюда и конфликты, я полагаю. Вместо этого вы могли бы выполнить смешанный сброс с
git reset HEAD^
И внесите изменения в последнюю фиксацию с изменениями в текущей фиксации:
git add your_changes
git commit --amend -m "new commit message"