ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ Git hooks (Ρ
ΡΠΊΠΎΠ²).
ΠΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ Git Ρ ΡΠΊΠΎΠ².
$ mkdir -p ~/.git/hooks
$ git config --global core.hooksPath ~/.git/hooks
$ cat ~/.gitconfig [user] name = Milosz email = milosz@evil.corp [core] hooksPath = /home/milosz/.git/hooks
ΠΡΠ½ΡΠ½Π΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Git-Ρ ΡΠΊΠΈ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
$ mkdir test-repo $ cd test-repo/ $ git init Initialized empty Git repository in /home/milosz/Projects/test-repo/.git/ $ git commit -m "init" --allow-empty [master (root-commit) 24a9da6] init $ git checkout -b "SMART-0001" Switched to a new branch 'SMART-0001' $ git commit -m "branch test" --allow-empty [SMART-0001 63ce23c] SMART-0001: branch test
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Git
ΠΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Git.
$ mkdir -p ~/.git/templates
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Git Ρ ΡΠΊΠΈ Π² ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
$ git config --global init.templatedir ~/.git/templates/hooks
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Git.
$ cat ~/.gitconfig [user] name = Milosz email = milosz@evil.corp [init] templatedir = /home/milosz/.git/templates
ΠΡΠ½ΡΠ½Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git, ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Gi Ρ ΡΠΊΠΈΒ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
$ cd Projects/test-repo/ $ ls .git/hooks/ applypatch-msg.sample fsmonitor-watchman.sample pre-applypatch.sample prepare-commit-msg.sample pre-rebase.sample update.sample commit-msg.sample post-update.sample pre-commit.sample pre-push.sample pre-receive.sample $ git init Reinitialized existing Git repository in /home/milosz/temp/test-repo/.git/ $ ls .git/hooks/ applypatch-msg.sample commit-msg.sample post-update.sample pre-commit.sample pre-push.sample pre-receive.sample commit-msg fsmonitor-watchman.sample pre-applypatch.sample prepare-commit-msg.sample pre-rebase.sample update.sample $ git checkout -b "SMART-0002" Switched to a new branch 'SMART-0002' $ git commit -m "branch test" --allow-empty [SMART-0002 f2a275d] SMART-0002: branch test