जब मैं 'पुश पुश' करता हूं तो क्या गिट हुक को रिमोट से धकेला जाता है?


92

अगर मैं रेपो / .git / हुक / पोस्ट-कमिट में अपनी स्थानीय रिपॉजिटरी में एक नई हुक स्क्रिप्ट बनाता हूं और फिर मैं "गिट पुश" चलाता हूं तो क्या हुक रिमोट को धकेल दिया जाता है? फिर, जब अन्य डेवलपर्स उसी मूल से "गिट पुल" चलाते हैं तो क्या उन्हें मेरे नए हुक मिलेंगे?


3
शायद यह मदद stackoverflow.com/questions/3462955/…
Ren Höhle

जवाबों:


79

नहीं, हुक प्रति-रिपॉजिटरी हैं और इन्हें कभी धकेला नहीं जाता है। इसी तरह, रेपो कॉन्फ़िगर को या तो धकेला नहीं जाता है, न ही इसमें कुछ होता है .git/info, या कई अन्य चीज़ों में।

धकेलने और खींचने से केवल शाखाएँ / टैग्स और कमिट वस्तुओं का आदान-प्रदान होता है (और कमिट से कुछ भी, जैसे पेड़, बूँदें)।


14
क्या केंद्रीय में हुक लगाने और उन्हें प्रत्येक क्लोन पर खींचने का एक तरीका है, और लागू किया जाता है।
f1wade

3
@ f1wade आप एक .githooksनिर्देशिका जोड़ सकते हैं जो कि तब नियंत्रित संस्करण होगा जो या तो सहानुभूति-लिंक होगा या अंदर से आवरण हुक स्क्रिप्ट बना सकता है .git। क्लोनिंग स्वचालित रूप से तार नहीं करेगी, .githooksलेकिन एक बार वायर्ड होने के बाद आप हुक स्क्रिप्ट के नए संस्करणों को धक्का और खींच सकते हैं।
फिलिप युग्म

47

नहीं, गिट हुक को धक्का या खींचा नहीं जाता है, क्योंकि वे भंडार कोड का हिस्सा नहीं हैं।

कृपया सरल क्लाइंट-साइड और सर्वर-साइड हुक की सूची के लिए प्रलेखन देखें ।

यदि आप सभी ग्राहकों के लिए कुछ हुक सक्षम करना चाहते हैं जो किसी दिए गए भंडार से क्लोन या खींचते हैं, तो आपको हुक को अपने कोडबेस में जोड़ना होगा और फिर उन्हें कॉपी करने के लिए अपनी स्वयं की स्क्रिप्ट बनानी होगी, या उनसे लिंक करना होगा repo/.git/hooks/


4
लेकिन कॉपी स्क्रिप्ट को कैसे कहा जाता है?
एडम जॉन्स

6
@AdamJohns यह उपयोगकर्ता / डेवलपर द्वारा कॉल किया जाता है, शायद एक देवता के रूप में setup.shजब वे पहली बार रिपॉजिटरी क्लोन करते हैं। इसके बाद, हुक के अपडेट स्वचालित रूप से हो सकते हैं, उदाहरण के लिए, हर पुल के बाद उन्हें अपडेट करने वाली स्क्रिप्ट को फिर से चलाता है। इसलिए आपको इसे स्वयं करने के लिए डेवलपर पर निर्भर होने की आवश्यकता नहीं है।
cm92

3

अफसोस की बात है लेकिन 2.9 के बाद से आप उन्हें .githooks फ़ोल्डर में रख सकते हैं (जैसा कि दूसरों ने उल्लेख किया है) और चलाएं:

git config --local core.hooksPath .githooks/

इसलिए फ़ाइलों की सहानुभूति या प्रतिलिपि की कोई आवश्यकता नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.