Локальный рычаг выполнения после нажатия мерзавца?

Если Вы обратитесь к дочернему классу как к типу его родителя, то невиртуальная функция назовет версию родительского класса.

т.е.:

Parent* obj = new Child();
63
задан Frank S. Thomas 24 April 2011 в 11:10
поделиться

2 ответа

Этот тип ловушки не поддерживается Git. Это выходит за рамки уважительных причин для перехвата Git как предоставлено сопровождающим Git.

Вступительное замечание в приведенном выше сообщении почти напрямую относится к вашему случаю:

Мне не особенно нравятся хуки, которые действовать после начала операции локально и действовать исключительно на основе локальных данных. Это может быть потому, что я все еще считаю строительные блоки инструментов git, подходящие для сценарии более высокого уровня больше, чем другие люди делают.

PS Подсказка «Однократное нажатие»

  • Слишком много предостережений для полного объяснения, но если вы сможете во всем разобраться, вы сможете разобраться в деталях.

Дополнительный pushurl к локальному репо с хранилищем «альтернативных» объектов может дать вам способ с низкими накладными расходами локально выполнить push hook. Но на самом деле усилия гораздо больше, чем git push upstream && update-web-server (возможно, в псевдониме оболочки, псевдониме git или скрипте).

36
ответ дан 24 November 2019 в 16:16
поделиться

Недавно я столкнулся с той же проблемой. Мне нужен был хук, чтобы push из моего подмодуля git фиксировал ссылку на новый подмодуль в "суперпроекте".

Как упомянул Крис, лучший способ - это использовать псевдоним git, например, такой:

$ git config alias.xpush '!git push $1 $2 && update-server.sh'
# (remember the backslash before the ! if your shell requires it)

Это добавляет следующее в ваш файл .git/config:

[alias]
  xpush = !git push $1 $2 && update-server.sh

И теперь, если вы напечатаете:

$ git xpush

ваши изменения будут вытолкнуты, а затем будет выполнен update-server.sh.

34
ответ дан 24 November 2019 в 16:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: