Как получить git pre-push hook refname

Я использую pre-push hook для автоматического создания журнала изменений из аннотированных тегов. Я хочу проверить, если ref толкнул tagили нет.
Аргументы, переданные в pre-push hook, не содержат имя refname, которое было выдвинуто. Как его получить?

Нажатие аннотированного тега с помощью git push origin <tag>

Метки

2 ответа

  1. С bash shell, вы можете использовать следующий код, чтобы получить то, что вам нужно:

    #!/bin/bash
    
    remote=
    	

    With bash shell, you could use the following code to get what you need:

    #!/bin/bash
    
    remote=$1
    url=$2
    #above are the 2 parameters
    #below are from the stdin
    while read local_ref local_sha remote_ref remote_sha
    do
       #if pushing a tag, local_ref would be refs/tags/...
    done
    

    At https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks, says "list of to-be-updated refs passed through stdin." Look at the template pre-push.sample hook under .git/hooks.

    url=
    #above are the 2 parameters
    #below are from the stdin
    while read local_ref local_sha remote_ref remote_sha
    do
    #if pushing a tag, local_ref would be refs/tags/...
    done