2016-07-06 2 views
2

Я хочу, чтобы иметь возможность прикоснуться к моим сообщениям о совершении, прежде чем нажимать их на свой пульт, но я хочу автоматически сделать это.Автоматически переписывать все перекомпонуемые коммиты

Я могу перефразировать все мои дополнительные фиксации, делая

git rebase -i origin/master 

Это вызывает редактор, где я могу изменить все коммиты pick к reword. Затем он поднимет редакторы, где я могу подправить свои сообщения о совершении.

Резюме ограничений:

  • Я не хочу, чтобы изменить каждый совершить reword.
  • Я не хочу вручную вводить каждый хеш фиксации.

Есть ли способ сделать это так?

+0

Вы пытаетесь внести одинаковые изменения в каждое сообщение? Может быть, пример был бы полезен. –

+0

Я хочу использовать функциональность повторного использования без необходимости интерактивной переустановки. Я отредактирую свой вопрос для ясности –

ответ

5

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

Я не хочу менять каждое обязательство на повторное использование.

Вы можете изменить редактор, используемый git-rebase -i с git config sequence.editor 'sed -i s/pick/reword/', так что ни один редактор хлопки для перебазирования-TODO, и зубочистки не будут заменены. Но это немного неуклюже, потому что вам нужно отменить конфигурацию после. (есть и core.editor для других случаев, и $EDITOR).

Вы также можете запустить git rebase origin/master -x 'git commit --amend'. -x добавляет exec <argument of the -x>, строка после каждого pick в rebase-todo. Заметьте, что здесь нет -i. Это изменение позволит вам изменить сообщение фиксации, например git commit --amend -m "new message".

Я не хочу вручную вводить каждое сообщение, которое я хочу изменить.

Вы можете использовать переменную EDITOR для неинтерактивной команды, которая редактируется так, как вы хотите, но я не знаю, какое редактирование вы хотите сделать.

Я хочу, чтобы перебазировать все новые коммиты с чем-то другим, чем выбрать

Смотреть предыдущие ответы.

+0

Это идеальный 'git rebase -i origin/master -x 'git commit --amend'' –

+1

Спасибо, я не знал о' -c' (отредактируйте свой комментарий, хотя, есть дополнительная 'config' после' -c') –

+3

@ λuser Вместо dong постоянной конфигурации вы можете выполнить 'git -c sequence.editor = 'sed -is/pick/reword /' rebase -i'. Это полностью устраняет неуклюжесть вашего ответа. Вы даже можете попробовать этот псевдоним git config alias.reword '-c sequence.editor = "sed -i s/pick/reword /" rebase -i' –

Смежные вопросы