हमें हमारी टीम में कोई समस्या है और हमने यह जांचने का निर्णय लिया है कि कोड में TODO हैं जहां गिट पुश को अस्वीकार करने का कोई तरीका या गिट कमांड है या नहीं। कोई विचार? अग्रिम धन्यवाद।कोड में TODO होने पर गिट पुश को कैसे अक्षम करें?
उत्तर
संभावित उपयोग नहीं है पूर्व प्राप्त GitHub में हुक, तो हम बजाय का उपयोग कर रहे प्री-प्रतिबद्ध ग्राहक के पक्ष में हुक: http://git-scm.com/book/en/Customizing-Git-Git-Hooks#Client-Side-Hooks
हमारे पूर्व प्रतिबद्ध लिपि (http://mark-story.com/posts/view/using-git-commit-hooks-to-prevent-stupid-mistakes के आधार पर) की तरह दिखता है:
#!/bin/sh
for FILE in `git diff-index -p -M --name-status HEAD -- | cut -c3-` ; do
if [ "grep 'TODO' $FILE" ]
then
echo $FILE ' contains TODO'
exit 1
fi
done
exit
हम अपने नियंत्रण संस्करण प्रणाली के तहत इस स्क्रिप्ट है, और .git में इसे करने के लिए एक प्रतीकात्मक लिंक बनाने/हुक
धन्यवाद मदद :)
संपादित करें के लिए: ग्रेप व्यवहार के कारण अगर बयान में हम हमारी स्क्रिप्ट को संपादित करने के लिए आवश्यक:
#!/bin/sh
for FILE in `git diff --name-only --cached`; do
grep 'TODO' $FILE 2>&1 >/dev/null
if [ $? -eq 0 ]; then
echo $FILE ' contains TODO'
exit 1
fi
done
exit
सर्वर पर हुक पूर्व प्राप्त करते हैं, फ़ाइलों grep और गर्भपात धक्का :) यहाँ पूर्व प्राप्त हुक पाया जा सकता है पर
और जानकारी: http://git-scm.com/book/en/Customizing-Git-Git-Hooks#Server-Side-Hooks
किसी भी विचार या लिंक को जिथब में इस काम के बारे में पढ़ने के लिए कहां पढ़ा जाए? हमारी परियोजना github पर होस्ट की गई है और मैं केवल पोस्ट प्राप्त प्राप्त हुक देखता हूं:? बेशक हम क्लाइंट-साइड हुक (प्री-प्रतिबद्ध हुक की तरह) का उपयोग कर सकते हैं, लेकिन फिर हमें इसे हमारी सभी मशीनों में बनाना होगा। आपकी मदद के लिए धन्यवाद :) – y2josei
फ़ाइल बनाने के बाद 'chmod + x .git/hooks/pre-commit'' को न भूलें – dutzi