Найти имя ветки Git в post-update hook

Я выполняю программу, чтобы предупреждать CruiseControl каждый раз, когда обновление отправляется в наш удаленный репозиторий. Я использую Git пост-обновление для этого.

Было бы здорово, если бы я узнал, какая ветка была совершена, поэтому я могу использовать это, чтобы сообщить CruiseControl, какую ветку строить. Есть ли способ получить доступ к имени ветки в объявлении после обновления?

Ответ 1

Первый параметр для крюка после обновления - это ссылка на ветку в полном объеме - например, я вижу "refs/heads/master" для нажатия на "master хозяина". Таким образом, пример hook script, который просто печатает измененную ветку, это:

#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref $1)
echo Update pushed to branch $branch
exec git update-server-info

Чтобы проиллюстрировать, когда указанное выше помещено в файл удаленных репозиториев/файл после обновления, при выполнении нажатия:

% git push origin master
Counting objects: 5, done
Writing objects: 100% (3/3), 247 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
remote: Update pushed to branch master
To /tmp/xx/a
    e02d9cd..ab14a08  master -> master

Новая строка, начинающаяся с "remote:", выводилась на наш крючок script.