🐧 Как Ρ€Π°ΡΡˆΠ°Ρ€ΠΈΡ‚ΡŒ Git Ρ…ΡƒΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими рСпозиториями

by itisgood

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для Git hooks (Ρ…ΡƒΠΊΠΎΠ²).

Π­Ρ‚Π° конфигурация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для Git Ρ…ΡƒΠΊΠΎΠ².

$ mkdir -p ~/.git/hooks
Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Git Ρ…ΡƒΠΊΠΈ Π² этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Git Ρ…ΡƒΠΊΠΎΠ².
$ git config --global core.hooksPath ~/.git/hooks
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Git.
$ 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.
$ 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

 

You may also like

Leave a Comment