मैं गिट करने के लिए नया हूं और मैं मूल/मास्टर को धक्का देने के बाद प्रतिबद्ध संदेश कैप्चर करने में सक्षम होना चाहता हूं और बैश स्क्रिप्ट (सर्वर पर) चला सकता हूं स्ट्रिंग में क्या है।गिट प्रतिबद्ध संदेश कैप्चर करने और एक्शन चलाने के लिए
उदाहरण के लिए, मेरे Git संदेश के लिए प्रतिबद्ध है, तो कहते हैं: [email] my commit message
प्रतिबद्ध संदेश [email]
तो कोई निर्दिष्ट कार्य करते हैं, तो अन्यथा, यह मत करो।
यहां नमूने बैश स्क्रिप्ट मैं post-receive
हुक में उपयोग करने का सोच रहा हूँ है:
#!/bin/bash
MESSAGE= #commit message variable?
if [[ "$MESSAGE" == *[email]* ]]; then
echo "do action here"
else
echo "do nothing"
fi
मूल रूप से सब मुझे पता है की जरूरत है क्या करने के लिए संदेश चर नाम है, ऊपर बैश में उपयोग करने के लिए स्क्रिप्ट? साथ ही, मुझे यकीन नहीं है कि यह करने के लिए यह सही हुक है या नहीं।
तो यह '[ईमेल]' मार्कअप आपके प्रतिबद्ध संदेश का स्थायी रूप से हिस्सा बनने जा रहा है? – Cascabel
अन्य संभावित विधियां: हुक को सिग्नल करने के लिए एक पर्यावरण चर का उपयोग करें, इसलिए इसके बारे में प्रतिबद्ध संदेश में कभी भी कुछ भी नहीं है। इसे आसान बनाने के लिए उपनाम का प्रयोग करें। या, यदि आप इसे संदेश में लिखना चाहते हैं, तो पूर्व-प्रतिबद्ध हुक में मार्कअप का पता लगाएं ताकि आप प्रतिबद्ध होने से पहले संदेश को संशोधित कर सकें। (या तो मान लें कि प्रतिबद्धता सफल होगी और तुरंत ईमेल करेगी, या पोस्ट-प्रतिबद्ध हुक के लिए कुछ स्टोर करें ...) – Cascabel
या क्या आप वाकई पोस्ट पोस्ट प्राप्त कर रहे हैं, पोस्ट पोस्ट नहीं? फिर आप निश्चित रूप से प्रतिबद्ध संदेश को संशोधित नहीं कर सकते हैं। हालांकि, इसका मतलब है कि आपका समाधान काम नहीं करता है: एक धक्का सिर्फ एक प्रतिबद्धता को धक्का नहीं देता है, यह किसी भी संख्या में रेफरी अपडेट करता है, जिनमें से प्रत्येक में कई नए काम शामिल हो सकते हैं। आपको वास्तव में [उदाहरण] (http://git.kernel.org/?p=git/git.git;a=blob;f=contrib/hooks/post-receive-email;hb=HEAD) देखना चाहिए गिट का contrib। यह काफी हद तक संभालता है, और आप इसे केवल [ईमेल] 'कहने वाले कार्यों पर ध्यान देने के लिए संशोधित कर सकते हैं। – Cascabel