Pomiń chwytaki Git

503

Patrzę na git hook, który szuka instrukcji print w kodzie Pythona. Jeśli znaleziono instrukcję print, uniemożliwia to polecenie git.

Chcę pominąć ten hak i powiedziano mi, że jest na to polecenie. Nie udało mi się go znaleźć. jakieś pomysły?

Ben
źródło
1
Rozwiązanie, które jest bardziej ogólne (działa również dla innych poleceń git niż commit): stackoverflow.com/questions/58337861/…
Gabriel Devillers,

Odpowiedzi:

866

Może (ze git commitstrony podręcznika ):

git commit --no-verify

-n  
--no-verify

Ta opcja omija przechwytywanie poprzedzające zatwierdzenie i zatwierdzanie msg. Zobacz także githooks (5) .

Jak skomentował przez Błażeja , -nmoże mieć inną rolę dla niektórych poleceń.
Na przykład git push -njest tak naprawdę suchym pchnięciem.
Tylko git push --no-verifypominie hak.


Uwaga: Git 2.14.x / 2.15 poprawia zachowanie - brak weryfikacji:

Zobacz zatwierdzenie 680ee55 (14 sierpnia 2017 r.) Autor: Kevin Willford (``) .
(Połączone przez Junio ​​C Hamano - gitster- w commit c3e034f , 23 sierpnia 2017)

commit: pomiń odrzucanie indeksu, jeśli nie ma pre-commithaka

git commit” służy do odrzucenia indeksu i ponownego odczytu z systemu plików na wypadek, gdyby pre-commithak zaktualizował go w środku; zostało to zoptymalizowane, gdy wiemy, że nie uruchamiamy pre-commithaka.


Davi Lima zwraca uwagę w komentarzachgit cherry-pick ma nie wspierać --no-zweryfikować.
Jeśli więc wybranie wiśni wyzwoli haczyk poprzedzający zatwierdzenie, możesz, tak jak w tym poście na blogu , skomentować / wyłączyć w jakiś sposób ten haczyk, aby kontynuować git cherry-pick.
Ten sam proces byłby konieczny w przypadku git rebase --continuerozwiązania konfliktu po scaleniu.

VonC
źródło
1
Aby zobaczyć cherry-pick, patrz web-dev.wirt.us/info/git-drupal/git-continue-vs-no-verify
Davi Lima
1
@DaviLima Dziękujemy. Uwzględniłem twój komentarz w odpowiedzi dla widoczności.
VonC
1
dzięki, @Vonc. to samo dzieje się w przypadku git rebase --continuebtw
Davi Lima,
Cześć, w moim przypadku ktoś z mojego zespołu aktualizuje mój hookfolder za pomocą skryptów wstępnego zatwierdzania, to takie denerwujące, czy istnieje sposób, aby zapobiec hookzastąpieniu mojego folderu przez git pull?
Zennichimaro
@Zennichimaro Może możesz skopiować folder haka repo w innym miejscu i skonfigurować hak po scaleniu ( git-scm.com/docs/githooks#_post_merge ), który wykryje, czy ściągnięcie wpłynie na folder haka repo, i zaproponuje skopiowanie jego zawartość do lokalnego folderu przechwytującego (poza repozytorium): w ten sposób możesz przynajmniej kontrolować, czy chcesz przechwycić swoje przechwytywania, czy nie przez to, co popychają twoi koledzy.
VCC
22

Od man githooks:

pre-commit
Ten hook jest wywoływany przez git commit, i można go ominąć opcją --no-Verify. Nie przyjmuje żadnego parametru i jest wywoływany przed uzyskaniem proponowanego komunikatu dziennika zatwierdzenia i dokonaniem zatwierdzenia. Wyjście ze statusu niezerowego z tego skryptu powoduje, że git commit przerywa.

Chris Eberle
źródło
2

Dla tych, very beginnersktóry ma spędzić kilka godzin na to commit (z commenta no verify) bez dalszej emisji

git commit -m "Some comments" --no-verify
Moumit
źródło