2012-12-14 7 views
7

हमें हमारी टीम में कोई समस्या है और हमने यह जांचने का निर्णय लिया है कि कोड में TODO हैं जहां गिट पुश को अस्वीकार करने का कोई तरीका या गिट कमांड है या नहीं। कोई विचार? अग्रिम धन्यवाद।कोड में TODO होने पर गिट पुश को कैसे अक्षम करें?

उत्तर

9

संभावित उपयोग नहीं है पूर्व प्राप्त 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 
+2

फ़ाइल बनाने के बाद 'chmod + x .git/hooks/pre-commit'' को न भूलें – dutzi

4

सर्वर पर हुक पूर्व प्राप्त करते हैं, फ़ाइलों grep और गर्भपात धक्का :) यहाँ पूर्व प्राप्त हुक पाया जा सकता है पर

और जानकारी: http://git-scm.com/book/en/Customizing-Git-Git-Hooks#Server-Side-Hooks

+0

किसी भी विचार या लिंक को जिथब में इस काम के बारे में पढ़ने के लिए कहां पढ़ा जाए? हमारी परियोजना github पर होस्ट की गई है और मैं केवल पोस्ट प्राप्त प्राप्त हुक देखता हूं:? बेशक हम क्लाइंट-साइड हुक (प्री-प्रतिबद्ध हुक की तरह) का उपयोग कर सकते हैं, लेकिन फिर हमें इसे हमारी सभी मशीनों में बनाना होगा। आपकी मदद के लिए धन्यवाद :) – y2josei

संबंधित मुद्दे