Silence git rebase - сообщение "Как продолжить" - PullRequest
0 голосов
/ 14 сентября 2018

Я написал скрипт для автоматизации git rebase --interactive для редактирования указанного коммита с использованием GIT_SEQUENCE_EDITOR=sed ...s/pick/edit/...

Как предотвратить «полезное» сообщение, которое печатает git rebase --interactive:

Stopped at 307c446...  Add candy-text
You can amend the commit now, with

  git commit --amend 

Once you are satisfied with your changes, run

  git rebase --continue

Это сообщение печатается в STDERR, и я все еще хочу видеть ошибки самой команды rebase и / или любых перехватчиков {pre,post}-rebase, поэтому 2>/dev/null не вариант.

Из документации git config я пробовал:

git -c advice.statusHints=false rebase --quiet --interactive --autostash --autosquash "$commit"~

Я также пытался отключить advice.resolveConflict и advise.detachedHead.

Похоже, никаких полезных опций нет rebase.*.

1 Ответ

0 голосов
/ 14 сентября 2018

Оба git-rebase--preserve-merges.sh (который вызывает warn ()) и sequencer.c не предлагают никакой опции, чтобы предотвратить отображение этого предупреждения.

Вы можете изменить git-rebase--preserve-merges.sh локально, но это не будет переносимым (плюс, в любом случае, git rebase переписывается на C, начиная с Git 2.19 )

Или вы можете отправить патч с новой настройкой, позволяющей отключить это предупреждение.


Или, как kostix предлагает в комментариях , вам нужно обработать вывод вашей команды, чтобы отфильтровать то, что вам не нужно:

Лучше всего, чтобы вы точно совпали с вашим скриптом хука и уничтожили его.
Возможно сделать это в два шага:

  1. match ^Stopped at [[:xdigit:]]+.*$ и удалить его, если сопоставлено;
  2. если сопоставлены и удалены, сопоставьте весь следующий баннер и удалите, если сопоставлены.

(хотя kostix предлагает сделать это с более продвинутым языком, чем bash)

...