Чи натискаються git-гачки на пульт, коли я `` git push ''?


92

Якщо я створив новий скрипт хука в моєму локальному сховищі в repo / .git / hooks / post-commit, а потім запустив "git push", чи пересуваються гачки на пульт? Тоді, коли інші розробники запустять "git pull" з того самого походження, чи отримають вони мої нові гачки?


3
Можливо, це допоможе stackoverflow.com/questions/3462955/…
Рене Хеле

Пов’язане (з дуже корисними відповідями): Чи можна керувати скриптами Git hook разом із сховищем?
Marc.2377

Відповіді:


79

Ні. Гачки є для кожного сховища і ніколи не натискаються. Подібним чином, конфігурація репо не натискається, ні в ній .git/info, ні в ряді інших речей.

При натисканні та витягуванні обмінюються лише гілки / теги та об'єкти комітів (і все, що можна досягти з коміту, наприклад, дерева, краплі).


14
Чи є спосіб закріпити гачки в центрі, натягнути їх на кожен клон і застосувати.
f1wade

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

47

Ні, git хуки не штовхаються і не тягнуться, оскільки вони не є частиною коду сховища.

Зверніться до документації для переліку простих гачків на стороні клієнта та сервера.

Якщо ви хочете увімкнути деякі хуки для всіх клієнтів, які клонують або витягують із даного сховища, вам потрібно додати хуки до вашої кодової бази, а потім створити власний скрипт, щоб скопіювати їх або зв’язати з ними repo/.git/hooks/.


4
але як викликається сценарій копіювання?
Адам Джонс,

6
@AdamJohns Його викликає користувач / розробник, ймовірно, у формі a, setup.shяку розробник запускає, коли вони вперше клонують сховище. Після цього оновлення гачків може відбуватися автоматично, наприклад, маючи гачок, який повторно запускає сценарій, оновлюючи їх після кожного витягування, наприклад. Тому вам не доведеться покладатися на розробника, щоб він це зробив сам.
cm92

3

На жаль, ні, але з git 2.9 ви можете помістити їх у папку .githooks (як згадували інші) і запустити:

git config --local core.hooksPath .githooks/

Тож не потрібні символічні посилання та копіювання файлів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.