Нажимаются ли хуки git на пульт, когда я нажимаю git push?


95

Если я создаю новый скрипт перехвата в моем локальном репозитории в репо / .git / hooks / post-commit, а затем запускаю «git push», будут ли перехваты отправлены на удаленный компьютер? Затем, когда другие разработчики запустят "git pull" из того же источника, получат ли они мои новые хуки?


3
Возможно, это поможет stackoverflow.com/questions/3462955/…
Рене Хёле

Ответы:


81

Нет. Хуки предназначены для каждого репозитория и никогда не передаются. Точно так же конфигурация репозитория не отправляется, ничего не .git/infoиспользуется или ряд других вещей.

При нажатии и извлечении происходит обмен только ветвями / тегами и объектами фиксации (и всем, что доступно из фиксации, например деревьями, каплями).


14
Есть ли способ разместить крючки в центре и натянуть их на каждый клон и применить.
f1wade

4
@ f1wade Вы можете добавить .githooksкаталог, который будет контролироваться версиями, а затем либо создать символьную ссылку, либо создать сценарии ловушки оболочки изнутри .git. Клонирование не будет автоматически .githooksподключаться, но после подключения вы можете загружать и извлекать новые версии скриптов перехвата.
Филип Коулинг

47

Нет, хуки git не нажимаются и не вытягиваются, так как они не являются частью кода репозитория.

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

Если вы хотите включить некоторые хуки для всех клиентов, которые клонируют или извлекают из данного репозитория, вам нужно добавить хуки в свою кодовую базу, а затем создать свой собственный скрипт для их копирования или ссылки на них repo/.git/hooks/.


4
но как вызывается сценарий копирования?
Адам Джонс

6
@AdamJohns Он вызывается пользователем / разработчиком, вероятно, в форме, setup.shкоторую разработчик запускает при первом клонировании репозитория. После этого обновления перехватчиков могут происходить автоматически, например, с помощью перехватчика, который повторно запускает скрипт, обновляя их после каждого извлечения. Так что вам не нужно полагаться на разработчика, который сделает это сам.
cm92

4

К сожалению, нет, но с git 2.9 вы можете поместить их в папку .githooks (как упоминалось другими) и запустить:

git config --local core.hooksPath .githooks/

Таким образом, нет необходимости в символических ссылках или копировании файлов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.