इससे पहले कि आप अपने कार्यप्रवाह का गहराई से, इससे पहले कि आप समय का एक पल या पैसे अपने संचार प्रक्रियाओं के पुनर्निर्माण के लिए एक डॉलर खर्च करते हैं, अपनी टीम के तीन प्रश्न पूछें:
- हम खाली स्थान के सम्मेलनों को लागू करते हैं?
- यदि हम आईडीई का उपयोग करते हैं, तो क्या वे सभी समान स्वरूपण और कीवर्ड सेटिंग्स का उपयोग करते हैं? उदाहरण के लिए, ग्रहण स्वचालित रूप से finalize parameters कर सकता है।
- क्या हम पाठ्य निर्माण कलाकृतियों को उत्पन्न करते हैं? उदाहरण के लिए, क्या हम जेएस को कम करते हैं,
.sass
या .scss
फ़ाइलों से सीएसएस नियम उत्पन्न करते हैं, या फ्लाई पर एक्सएमएल कॉन्फ़िगरेशन बनाते हैं? क्या हम उन्हें चेक करते हैं?
संघर्ष पैदा करने और अन्य लोगों को केंद्रीकृत कार्यप्रवाह में उन्हें हल के वर्षों के बाद, मैं इन तीन चीजों हमारे सामूहिक संघर्ष दर्द के विशाल बहुमत के कारण सबमिट करें:
उपरोक्त छवि में, '!'स्लाइस वैध विलय संघर्ष का प्रतिनिधित्व करता है। विशाल अधिकांश भयानक विलय आलसी सफेद जगहों के सम्मेलनों या अत्यधिक आक्रामक आईडीई (या कभी-कभी, अतिसंवेदनशील डेवलपर्स) से आते हैं। कुछ और करने से पहले, अपनी आईडीई सेटिंग्स और व्हाइटस्पेस सम्मेलनों को मानकीकृत करें। तब हर किसी को है उनके स्थानीय खजाने में इस आदेश जारी:
# Enable the repository's stock pre-commit hook
mv .git/hooks/pre-commit.sample .git/hooks/pre-commit
कि पूर्व प्रतिबद्ध हुक चेकों की एक श्रृंखला हर बार जब आप जारी git commit
का संचालन करेंगे git diff --check
का एक संस्करण, एक कमांड की जाँच करता है कि अगर आपके प्रतिबद्ध परिवर्तन शुरू सहित, व्हाइटस्पेस त्रुटियां। अगर ऐसा होता है तो प्रतिबद्धता खारिज कर दी जाएगी। यदि आपको वास्तव में इसके आसपास जाना है, तो आप git commit --no-verify
जारी कर सकते हैं, लेकिन यह नहीं: व्हाइटस्पेस त्रुटियां संस्करण नियंत्रण के अनपेक्षित अध्यादेश की तरह हैं। वे होने वाले संघर्षों को विलय कर रहे हैं।
यदि आप व्हाइटस्पेस को साफ करना चाहते हैं, तो अपनी इंडेंटेशन में सुधार करने के लिए एक फ़ाइल को दोबारा दोहराएं, या अन्यथा पूरी तरह से स्वरूपण परिवर्तनों की एक बड़ी श्रृंखला बनाएं, इसे अलग-अलग कामों में करें, और टीम को अपने विरोधाभासी काम को पहले प्रगति में जांचने के लिए चेतावनी दें ।
आप कोड समीक्षा का संचालन करते हैं, तो ये पहले सवाल हर समीक्षक प्रश्नों को पूछने के: "इस परिवर्तन सेट स्पर्श कुछ भी यह किसी भी स्वरूपण को साफ किया नहीं होना चाहिए था क्या यह अनावश्यक रूप से एक विधि refactor किया??" अगर ऐसा हुआ, तो समीक्षा में असफल रहा। या यदि आप नहीं कर सकते हैं, तो सुनिश्चित करें कि आपके इतिहास को उपयोगी बनाने के लिए उन परिवर्तनों को तार्किक परिवर्तनों (यानी विभिन्न प्रतिबद्धताओं में) से पर्याप्त रूप से अलग किया गया है।
स्टाइलशीट भाषाएं, RequJS, और जेएस मिनीफायर भी विवाद पैदा करते हैं, यदि उनके जेनरेट किए गए लक्ष्य चेक किए जाते हैं। इन तकनीकों द्वारा बनाई गई फ़ाइलें कलाकृतियों का निर्माण करती हैं। आप एक युद्ध संग्रह में जांच नहीं करेंगे; SASS- संकलित सीएसएस फ़ाइल में जांच न करें। या, अगर आपको लगता है कि आपको गिट के रूप में द्विआधारी के रूप में व्यवहार करने के लिए .gitattributes
file का उपयोग करना है।
यदि इन सभी चीजों को करने के बाद, आप अभी भी विवाद विवाद, संस्थान वर्कफ़्लो सुधारों को विलय कर चुके हैं। गैरी फिक्सलर का जवाब बिल्कुल सही है: वैध विलय संघर्ष उत्पन्न होते हैं क्योंकि टीम अपनी परियोजनाओं के दायरे के बारे में अच्छी तरह से संवाद नहीं कर सकती या नहीं कर सकती हैं। बस सुनिश्चित करें कि यह पहले खराब रूप से लागू प्रारूपण नियमों को लागू नहीं करता है।
मैं अपने दिल में snark के साथ इस सवाल के लिए आया था, और तुम मेरे साथ कितना अच्छा अपने जवाब था पर जीत हासिल की! –
महान उत्तर के लिए धन्यवाद :) – Dev01