Я часто переустанавливаю интерактив, чтобы внести крошечные изменения в историю (например, удалить пустую строку или отредактировать одну строку). В большинстве случаев эти изменения основаны на экспертной оценке.
Сначала я делаю свое изменение следующим образом:
git rebase --interactive 83bbeb27fcb1b5e164318fa17c55b7a38e5d3c9d~
# replace "pick" by "edit" on the first line
# modify code
git commit --all --amend --no-edit
git rebase --continue
Если в одном из следующих коммитов есть конфликты слияния, я разрешаю их и делаю следующее:
git rebase --continue
# the commit message is shown, but does not have to be changed, so I just save and exit the editor
git rebase --continue
# the commit message is shown, but does not have to be changed, so I just save and exit the editor
git rebase --continue
# the commit message is shown, but does not have to be changed, so I just save and exit the editor
...
Есть ли что-то вроде аргумента --no-edit
для git rebase --continue
, который избегает редактора (аналогично git commit
)?
true
. Git вызовет его, он ничего не сделает и преуспеет, а Git повторно использует существующее сообщение коммита. Следовательно:GIT_EDITOR=true git rebase --continue
. - person torek   schedule 19.04.2017;
(вот так:GIT_EDITOR=true;git rebase --continue
), но это не сработало. (Я использую Mac, кстати) - person slartidan   schedule 19.04.2017VAR=val cmd...
) действительно влияет только на одну команду плюс все, что она запускает сама. Чтобы повлиять на несколько команд, вы должны установить переменную и экспортировать ее, что в большинстве оболочекexport VAR=value; command1; command2; ...
- person torek   schedule 19.04.2017