Ответ 1
После git reset
этот однострочный пользователь может это сделать:
git commit [email protected]{1}
или даже короче:
git commit -C [email protected]{1}
Вы можете использовать другие параметры, указанные @user2718704.
Как Git пользователь, я регулярно сталкиваюсь с ситуацией, что мне нужно переработать одну или несколько коммитов таким образом, чтобы они не вписывались в --amend
или rebase -i
с фиксацией fixup. Обычно я бы сделал что-то вроде
git reset HEAD~1
# hack, fix, hack
git commit -a
# argh .. do I need to retype my message?
Я воспринимаю разумные составленные сообщения фиксации довольно серьезно. Обычно они содержат больший текст со ссылками и обоснованиями для изменения. До сих пор меня очень раздражало длительный процесс восстановления моего старого сообщения фиксации с помощью несортированного git reflog
, git log
и копирования и вставки.
Можно ли лучше справиться с этим? И как бы это произошло, если в моем случае содержится более одного коммита?
Редактирование: немного подумав об этом, я думаю, что я ищу что-то вроде Git типа stash-like для фиксации сообщений, где исправления/исправления не подходят.
После git reset
этот однострочный пользователь может это сделать:
git commit [email protected]{1}
или даже короче:
git commit -C [email protected]{1}
Вы можете использовать другие параметры, указанные @user2718704.
При выполнении команды "git commit" вы должны проверить следующие параметры,
Для повторного использования
--reuse-message=<commit>
Чтобы изменить повторное использование,
--reedit-message=<commit>
Чтобы изменить автора,
--reset-author
Почему reset, если вы можете взломать, исправить, взломать и просто запустить git commit --amend --no-edit
; таким образом, сохраняя исходное сообщение фиксации.
Чтобы заставить его работать для нескольких коммитов, просто создайте временную фиксацию с вашими новыми изменениями, а затем используйте интерактивную переадресацию, чтобы раздавить предыдущую фиксацию (содержащую хорошее сообщение фиксации) новым временным, сохраняя сообщение фиксации старый фиксатор.
Вы можете рассмотреть git commit --reset-author -c <commit>
, чтобы повторно использовать сообщение фиксации с редактированием и текущее время.