2015-09-18 17 views
5

Mam hook przed zatwierdzeniem i chcę go dodać do repozytorium, aby po sprawdzeniu go koledzy mieli go natychmiast na miejscu.
Jednak gdy próbuję go dodać (będąc w katalogu głównym mojego projektu) pojawia się następujący wynik:Jak dodać hak pre-commit do istniejącego repozytorium git?

$ git add .git/hooks/pre-commit 
error: Invalid path '.git/hooks/pre-commit' 
error: unable to add .git/hooks/pre-commit to index 

Wszelkie pojęcia, czy ta praca i jak osiągnąć swój cel?

Odpowiedz

7

sprawdzenie go moi koledzy to od razu na miejscu

Sept. 2015: To nie jest możliwe: hak można umieścić w kontroli źródła (wystarczy skopiować skrypt w git repo), ale nie może być "automatycznie na miejscu" (aktywne) na klanie/kasy: to byłoby zbyt niebezpieczne, w zależności od tego, co faktycznie robi hak.
Patrz także „Git remote/shared pre-commit hook

Ty nadal trzeba go aktywować, dodając dowiązania (nawet w systemie Windows) do haka pre-commit obecnego w repo git.

Aktualizacja grudnia 2016: the OP Calamity Jane wspomina in the comments:

Rozwiązałem go teraz w projektach Symfony2 (oraz z innymi, to również powinno działać), aby mieć go jako część composer.json.
Więc jeśli kolega robi composer install lub composer update, jest automatycznie umieszczany we właściwym miejscu.

"scripts": { "dev-install": [ "bash setup_phpcs.sh" ] }, 

Więc na dev, setup_phpcs.sh jest wywoływana automatycznie i że kopie hak z folderu w repozytorium na właściwym miejscu.
A ponieważ hak jest częścią repozytorium, można go łatwo aktualizować i rozpowszechniać.

+0

W innym repozytorium używam dowiązania symbolicznego do centralnego repozytorium z efektem, którego połowa moich kolegów nie używa haka. Ale jeśli nie działa w ten sposób, to będę miał to z moim repozytorium i mogę również zrozumieć, dlaczego nie jest to pożądane. –

+0

Dzięki za odpowiedź * dlaczego *, to właśnie chciałem wiedzieć o @VonC. – Droogans

+0

Przy okazji rozwiązałem go już teraz w projektach symfony2 (i z innymi także powinien działać), aby mieć go w ramach composer.json. Więc jeśli kolega robi kompilację instalatora lub aktualizację kompozytora, jest automatycznie umieszczany w odpowiednim miejscu. "skrypty": { "dev-install": [ "bash setup_phpcs.sh" ] } Więc na setup_phpcs.sh dev jest automatycznie nazwie i że kopie haka z folderu w repozytorium dobre miejsce. A ponieważ hak jest częścią repozytorium, można go łatwo aktualizować i rozpowszechniać. –