2015-01-06 12 views
5

मैं प्री-प्रतिबद्ध पर कुछ gulp आदेश चलाने के लिए कुछ गिट हुक सेट करता हूं। मैं मूल रूप से jshint/plato चलाता हूं।बाईपास प्री-प्रतिबद्ध हुक

  1. हॉटफिक्स शाखाओं (मास्टर/हॉटफिक्स)
  2. Git मर्ज (या एक तरीका है कि मर्ज पर क्रैश नहीं होता प्रतिबद्ध मामले में यह करने के लिए एक रास्ता खोजने): मैं मूल रूप से दो मामलों के लिए इन बायपास करना चाहते हैं

प्लेटो गल्प कमांड स्रोत पर विश्लेषण चलाता है और एक/रिपोर्ट/निर्देशिका बनाता है जो समय के साथ जटिलता को ट्रैक करता है। अगर हम हॉटफिक्स शाखा पर ऐसा करते हैं तो परिणामस्वरूप उन्हें विकास में विलय करते समय संघर्ष विलय हो जाएगा।

#!/bin/sh 

if git diff --cached --name-only --diff-filter=ACM | grep '.js$' >/dev/null 2>&1 
then 
    git stash -q --keep-index 
    ./node_modules/.bin/gulp jshint 
    RESULT=$? 
    git stash pop -q 
    [ $RESULT -ne 0 ] && exit 1 
    git stash -q --keep-index 
    ./node_modules/.bin/gulp plato 
    git add report/ 
    git stash pop -q 
fi 

exit 0 

मुद्दा अभी अगर मैं "रिपोर्ट" पर किसी मर्ज विरोध होता है और मैं मर्ज All conflicts fixed but you are still merging. हल और उसके बाद के लिए प्रतिबद्ध यह विश्लेषण फिर से चलाता है और चरण के लिए प्रतिबद्ध है और जब यह: बस यहाँ बात कर सरल हुक है करता है यह एक त्रुटि फेंकता है:

/Users/Nix/work/project/.git/modules/somesubmodule/MERGE_HEAD' for reading: No such file or directory.

निर्देशिका मौजूद है लेकिन कोई मर्ज सिर है ...

उत्तर

9

तो मैं सिर्फ एक आदेश मुझे लगता है कि मैं "merge_head"

पता लगाने के लिए उपयोग कर सकते हैं पाया
git rev-parse -q --verify MERGE_HEAD 

रेव-पार्स एक हैश मतलब है कि हम किसी मर्ज राज्य में वर्तमान में कर रहे हैं देता है, तो। मैं इस तर्क को बाईपास करने के लिए इसका उपयोग कर सकता हूं। लेकिन अधिक अनुभवी व्यक्तियों से कुछ बेहतर सलाह की प्रतीक्षा करेंगे।

+0

प्रतीक्षा करें ... –

+0

मेरे लिए काम करता है। धन्यवाद! – EM0

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