2011-09-07 100 views
32

में Git शाखा नाम खोजें मैं CruiseControl हर बार एक अद्यतन हमारे दूरस्थ भंडार को भेजा जाता है सचेत करने के लिए एक कार्यक्रम को क्रियान्वित करने कर रहा हूँ। मैं इसके लिए एक गिट पोस्ट-अपडेट हुक का उपयोग कर रहा हूं।बाद अद्यतन हुक

यह अगर मैं जो शाखा तो मैं इस्तेमाल कर सकते हैं कि CruiseControl जो शाखा का निर्माण करने के बारे में सूचित करने के लिए प्रतिबद्ध किया गया था बाहर मिल सकता है बहुत अच्छा होगा। पोस्ट-अपडेट हुक के भीतर शाखा नाम तक पहुंचने का कोई तरीका है?

उत्तर

43

बाद अद्यतन हुक करने के लिए पहले पैरामीटर पूर्ण में शाखा संदर्भ है - उदाहरण के लिए मैं 'मूल मास्टर' के लिए एक धक्का के लिए देखें 'refs/सिर/मास्टर'। तो एक उदाहरण हुक स्क्रिप्ट है कि बस शाखा प्रिंट संशोधित है:

#!/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 

नई लाइन शुरू 'रिमोट:' हमारे हुक स्क्रिप्ट के द्वारा उत्पादन किया गया था।

+0

धन्यवाद, Patthoyts। उपर्युक्त कोड का उपयोग करके, मुझे "रिमोट: हुक/पोस्ट-अपडेट: लाइन 8: शाखा: कमांड नहीं मिला"। एंच – user489998

+0

मैंने एक विस्तारित नमूना प्रदान किया। आपको अभी भी शुरुआत में #!/Bin/sh लाइन की आवश्यकता है। साथ ही, जब आप एक शेल स्क्रिप्ट में एक चर सेट करते हैं तो मूल्य – patthoyts

+0

वेहेई तक पहुंचने के लिए $ का उपयोग करें! ऐसा किया गया है। बहुत बहुत धन्यवाद। – user489998