में प्रतिबद्ध संदेश प्राप्त करें मैं गिट प्रतिबद्ध से पहले प्रतिबद्ध संदेश जांचना चाहता हूं। मैं ऐसा करने के लिए प्री-प्रतिबद्ध हुक का उपयोग करता हूं, लेकिन .git/pre-commit स्क्रिप्ट में प्रतिबद्ध संदेश प्राप्त करने का तरीका नहीं मिला। मैं इसे कैसे प्राप्त कर सकता हूं?गिट हुक
गिट हुक
उत्तर
प्री-प्रतिबद्ध हुक में, प्रतिबद्ध संदेश अभी तक नहीं बनाया गया है। आप शायद इसके बजाय prepare-commit-msg
या commit-msg
हुक का उपयोग करना चाहते हैं। ऑर्डर पर nice section in Pro Git है जिसमें इन हुक चलाए जाते हैं, और आप आमतौर पर उनके साथ क्या कर सकते हैं।
आप pre-receive
हुक (सर्वर पक्ष के लिए) में निम्न कार्य कर सकते हैं, और यह संशोधन जानकारी प्रदर्शित करेगा।
old, new, branch = sys.stdin.read().split()
proc = subprocess.Popen(["git", "rev-list", "--oneline","--first-parent" , "%s..%s" %(old, new)], stdout=subprocess.PIPE)
commitMessage=str(proc.stdout.readlines()[0])
दिलचस्प लग रहा है। लेकिन किसी भी भाषा के बारे में कोई जानकारी के बिना या कुछ और, यह बहुत उपयोगी नहीं है। – conradkdotcom
यह पायथन में है। – ArekBulski
मैंने इसे commit-msg
हुक में कार्यान्वित किया। documentation देखें।
commit-msg
This hook is invoked by git commit, and can be bypassed with the --no-verify option.
It takes a single parameter, the name of the file that holds the proposed commit log message.
Exiting with a non-zero status causes the git commit to abort.
my_git_project/.git/hooks
के तहत, मैं इस फ़ाइल commit.msg
जोड़ा (इस नाम हो गया है)। मैंने इस फ़ाइल के अंदर निम्न बैश सामग्री को जोड़ा जो सत्यापन करता था।
#!/usr/bin/env bash
INPUT_FILE=$1
START_LINE=`head -n1 $INPUT_FILE`
PATTERN="^(MYPROJ)-[[:digit:]]+: "
if ! [[ "$START_LINE" =~ $PATTERN ]]; then
echo "Bad commit message, see example: MYPROJ-123: commit message"
exit 1
fi
कृपया ध्यान दें कि ये क्लाइंट साइड स्क्रिप्ट हैं, सर्वर साइड स्क्रिप्ट के लिए, किसी को 'प्री-प्राप्त'' का उपयोग करने की आवश्यकता हो सकती है। –