2015-09-18 12 views
5

में कैसे जोड़ सकता हूं मेरे पास प्री-प्रतिबद्ध हुक है और मैं इसे भंडार में जोड़ना चाहता हूं ताकि यह जांच कर मेरे सहयोगियों को तुरंत यह पता चल सके।
लेकिन अगर मैं इसे जोड़ने की कोशिश मैं निम्नलिखित परिणाम प्राप्त (मेरी परियोजना के रूट निर्देशिका में किया जा रहा है):मैं अपने प्री-प्रतिबद्ध हुक को मौजूदा गिट रिपॉजिटरी

$ git add .git/hooks/pre-commit 
error: Invalid path '.git/hooks/pre-commit' 
error: unable to add .git/hooks/pre-commit to index 

किसी भी विचार करता है, तो यह काम और कैसे मेरे लक्ष्य को प्राप्त करने के लिए?

उत्तर

7

यह बाहर की जाँच के अपने सहयोगियों यह तुरन्त जगह

सितम्बर 2015 में है: यह संभव नहीं है: एक हुक स्रोत नियंत्रण में रखा जा सकता (आप बस अपने Git में स्क्रिप्ट कॉपी रेपो), लेकिन यह क्लोन/चेकआउट पर "स्वचालित रूप से" जगह (सक्रिय) नहीं हो सकता है: यह वास्तव में बहुत ही खतरनाक होगा, वास्तव में हुक वास्तव में क्या कर रहा है।
भी देखें "Git remote/shared pre-commit hook"

तुम अब भी पूर्व प्रतिबद्ध हुक Git रेपो में मौजूद करने के लिए इसे सक्रिय करने, एक सिमलिंक (यहां तक ​​कि विंडोज पर) जोड़कर की आवश्यकता होगी।

अद्यतन दिसम्बर वर्ष 2016: OP Calamity Jane उल्लेख in the comments:

मैं इसे द्वारा अब symfony2 परियोजनाओं में (और अन्य लोगों के साथ, यह भी काम करना चाहिए) हल composer.json के हिस्से के रूप में यह है।
तो यदि कोई सहयोगी composer install या composer update कर रहा है, तो यह स्वचालित रूप से सही स्थान पर रखा जाता है।

"scripts": { "dev-install": [ "bash setup_phpcs.sh" ] }, 

तो देव पर, setup_phpcs.sh स्वचालित रूप से कहा जाता है और कि प्रतियां सही जगह पर भंडार में एक फ़ोल्डर से हुक है।
और चूंकि हुक भंडार का हिस्सा है, इसे आसानी से अपडेट और वितरित किया जा सकता है।

+0

एक और भंडार के साथ मैं एक केंद्रीय भंडार में एक सिम्लिंक का उपयोग कर रहा हूं जिसके प्रभाव में मेरे सहयोगियों का आधा हुक का उपयोग नहीं कर रहा है। लेकिन अगर यह इस तरह से काम नहीं करता है, तो मैं इसे अपने अन्य भंडार के साथ पसंद करूंगा और मैं यह भी समझ सकता हूं कि यह वांछित क्यों नहीं है। –

+0

उत्तर देने के लिए धन्यवाद * क्यों *, यही मैं @VonC के बारे में जानना चाहता था। – Droogans

+0

जिस तरह से मैंने इसे compmer.json के हिस्से के रूप में रखने के लिए symfony2 प्रोजेक्ट्स (और अन्य के साथ भी काम करना चाहिए) में इसे हल किया। तो यदि कोई सहयोगी संगीतकार स्थापित या संगीतकार अद्यतन कर रहा है तो यह स्वचालित रूप से सही स्थान पर रखा जाता है। "स्क्रिप्ट": { "देव से स्थापित": [ "बैश setup_phpcs.sh" ] }, तो देव setup_phpcs.sh स्वचालित रूप से कहा जाता है पर और कहा कि प्रतियां भंडार में एक फ़ोल्डर से हुक करने के लिए सही जगह। और चूंकि हुक भंडार का हिस्सा है, इसे आसानी से अपडेट और वितरित किया जा सकता है। –

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