ΠΠ΅Π½Ρ 5: git hooks β ΠΊΠ°ΠΊ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ ΠΌΡΡΠΎΡ Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
Π¦Π΅Π»Ρ ΡΡΠΎΠΊΠ° ΠΠΎΡΠ»Π΅ ΡΡΠΎΠΊΠ° Π²Ρ ΡΠΌΠ΅Π΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ pre-commit ΠΈ commit-msg hook Π½Π° ΡΠΈΡΡΠΎΠΌ bash (Π±Π΅Π· Husky / Node / Python), ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΠΏΠΎΡΠ΅ΠΌΡ hooks ΠΆΠΈΠ²ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΡΡ ΠΈΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΡΠ΅Π· core.hooksPath + ΠΏΠ°ΠΏΠΊΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ², trailing whitespace, ΡΠΎΡΠΌΠ°ΡΠ° Conventional Commits. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Bloom ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ SFIA Π£ΡΠΎΠ²Π΅Π½Ρ 3 ΠΡΠ΅ΠΌΡ 40 ΠΌΠΈΠ½ΡΡ ΠΡΡΠ΅ΡΠ°ΠΊΡ repo/.githooks/pre-commit + commit-msg + core.hooksPath = .githooks ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΠΎΠΌΠΌΠΈΡ Ρ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠΌ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ; ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΠΊΡΠΈΠ²ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ; git commit --no-verify ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡ (ΠΈ ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ) Π’Π΅ΠΎΡΠΈΡ: ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ git hook Hook β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ .git/hooks/, ΠΊΠΎΡΠΎΡΡΠΉ Git Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π΅ΡΡΡ ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΈΡ +x β Git Π·Π°ΠΏΡΡΡΠΈΡ Π΅Π³ΠΎ ΠΈ ΡΠΌΠΎΡΡΠΈΡ Π½Π° exit code: 0 β ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π½Π΅ 0 β ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. ...