Pertanyaan Temukan nama cabang Git di hook pasca-pembaruan [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

Saya mengeksekusi program untuk mengingatkan CruiseControl setiap kali pembaruan dikirim ke repositori jarak jauh kami. Saya menggunakan hook post-update Git untuk ini.

Akan lebih bagus lagi jika saya dapat mengetahui cabang mana yang telah dilakukan sehingga saya dapat menggunakannya untuk memberi tahu CruiseControl cabang mana yang akan dibangun. Apakah ada cara untuk mengakses nama cabang dalam hook pasca-pembaruan?


32
2017-09-07 09:25


asal


Jawaban:


Parameter pertama ke hook pasca-pembaruan adalah referensi cabang secara penuh - misalnya saya melihat 'refs / heads / master' untuk push ke 'master asal'. Jadi contoh skrip hook yang hanya mencetak cabang yang dimodifikasi adalah:

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

Untuk mengilustrasikan, ketika di atas ditempatkan ke file pengait repositori / pasca-pembaruan jarak jauh, yang berikut ini dicetak saat melakukan push:

% 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

Garis baru yang dimulai 'remote:' adalah output oleh skrip hook kami.


44
2017-09-07 10:21