2013-12-16 25 views
27

Właśnie zaczynam zaglądać w haki Git, ale nie mogę sprawić, by działały.Git przed zatwierdzeniem hook nie działa w systemie Windows

Skonfiguruję lokalne repozytorium, więc w moim folderze projektu znajduje się teraz katalog ".git". Dodałem plik ".cmd" do katalogu C:/path /to/my/project/.git/hooks o nazwie "pre-commit.cmd". Oto treść tego pliku:

echo "HOOK RUNNING" 
echo. 2>C:/path/to/my/project/.git/hooks/EmptyFile.txt 

ten powinien echo tekst „HOOK Running” i utworzyć pusty plik tekstowy w tym katalogu. Jeśli jednak zatwierdzę zmiany za pośrednictwem mojego IDE (NetBeans) lub użyję Git Bash do zatwierdzenia, żaden z nich nie wydaje się uruchamiać haka przed zatwierdzeniem, ponieważ nie jest tworzony żaden plik.

Rozumiem, że wszystko, co musisz zrobić, aby uruchomić hak, to dodać plik wykonywalny z nazwą haka (tak jak ja to zrobiłem). czy robię coś źle?

Uwaga: Jest to na komputerze z systemem Windows 7.

Odpowiedz

38

Co powiesz na nazwę haka pre-commit (bez żadnego rozszerzenia)?

EDIT: i dodać #!/bin/sh na pierwszej linii lub #!/bin/bash (sugerowane w komentarzach)

+0

Dzięki za sugges tację. Po prostu próbowałem, a teraz pojawia się błąd podczas próby zatwierdzenia: "error: can not spawn .git/hooks/pre-commit: brak takiego pliku lub katalogu". – user1578653

+1

edytowane w celu dodania drugiej sugestii (znaleziono w http://stackoverflow.com/questions/5697210/msysgit-error-with-hooks-git-error- cannon-spawn-git-hooks-post-commit-no-su) . jeśli to nie jest to, nie mogę pomóc więcej, nie jestem zaznajomiony z problemem powłoki Windows – Asenar

+0

To było to! Jesteś drugą sugestią, która sprawiła, że ​​działa. Nie wiem, dlaczego nie może to być zwykły plik ".bat" lub ".cmd" systemu Windows ... – user1578653

31

Prawdopodobnie nie mają uprawnień, aby uruchomić plik pre-commit

Uruchom w terminalu:

chmod +x .git/hooks/pre-commit 

Dzięki @vaughan za udzielenie pomysłu

+0

również ważny powód, dla którego hak nie działał: D, prawda w moim przypadku, thx –

+0

To doprowadzało mnie do szału i naprawiłem mój problem. Dzięki! – skeller88

+0

@ DaneMacaulay Czy możesz mi powiedzieć, gdzie to napisać? – user2125722