2015-03-31 5 views
5

Учитывая произвольный исполняемый Git пост-фиксационный крючок, он не запускается во время неинтерактивной переадресации ни с rebase --force-rebase, ни с rebase --no-ff, который является синонимом первого в неинтерактивном режиме в соответствии с GIT-REBASE (1) Manpage.Почему Git-пост-фиксация на неинтерактивной перезагрузке не запускается?

Но, совершив интерактивную перезагрузку с rebase --interactive --no-ff, тот же самый крючок Git запускается на пост-фиксации.

Может кто-нибудь объяснить обоснование такого поведения.

ответ

0

От https://git-scm.com/docs/git-rebase

--no-ФФ С --interactive, вишневым выбрать все перебазировались совершает вместо быстрой пересылки по неизменным единицам. Это гарантирует, что вся история восстановленной ветки состоит из новых коммитов.

Без --interactive, это синоним --force-rebase.

Вы можете найти это полезно после возвращения на тему ветвь слияния, так как этот параметр воссоздает тему ветку со свежими фиксациями, поэтому он может быть успешно remerged без необходимости «вернуться к реверсии» (см убрать изменения-a- сбойное слияние How-To для деталей).

Cherry pick создает новые коммиты, а git post-commit запускается после создания новой фиксации, не так ли?

От: https://git-scm.com/docs/git-cherry-pick

ОПИСАНИЯ Учитывая один или несколько существующих фиксации, применить изменения каждого Вводится, запись нового коммита для каждого. Это требует, чтобы ваше рабочее дерево было чистым (никаких изменений от фиксации HEAD не было).

Это ясно?

+0

Итак, как это влияет на фиксацию фиксации? Пожалуйста, объясни. – ams

+0

Я обновил ответ – grimsock

+0

Я думаю, это объясняет, почему hook * does * trigger, но вы не объяснили, почему крючок может * не * запускать. – ams