क्या आप कंपनी में लागू करने के लिए एक अच्छा प्रतिबद्ध संदेश टेम्पलेट / दिशानिर्देश सुझा सकते हैं? [बन्द है]


38

Git में एक अच्छा कमिट सेट करना और लागू करना संभव है।

क्या आप कंपनी में लागू करने के लिए एक अच्छा प्रतिबद्ध टेम्पलेट / दिशानिर्देशों के साथ (अधिमानतः तर्क के साथ) अनुशंसा कर सकते हैं?

जवाबों:


42

मैं उपयोग करता हूं

[Abc]: Message.

Add, Mod (ify), Ref (अभिनय), Fix, Rem (ove) और Rea (dability) के साथ फिर लॉगफाइल को निकालना आसान है।

उदाहरण :

Add: New function to rule the world.  
Mod: Add women factor in Domination.ruleTheWorld().  
Ref: Extract empathy stuff to an abstract class.  
Fix: RUL-42 or #42 Starvation need to be initialised before Energy to avoid the nullpointer in People.  
Rem: freeSpeech is not used anymore.  
Rea: Removed old TODO and extra space in header.  

अगर मेरे पास एक पंक्ति से अधिक है, तो मैं उन्हें सबसे महत्वपूर्ण के साथ सॉर्ट करता हूं।


1
+1 इससे निपटने का एक अच्छा तरीका है और आप बदलावों के लिए आसानी से तैयार हो सकते हैं।
सरदाथ्रियन - मोनिका

12
EEK! आपने फ्री स्पीच छीन ली!
कैफ़ीक

1
क्या आप कृपया Modऔर के बीच कुछ अंतर बता सकते हैं Ref? कभी-कभी मैं सिर्फ छोटे-छोटे सुधार कर रहा हूं, जो किसी तरह का रिफलेक्शन है।
yegle

2
@ ईगल Modकुछ जोड़ने या व्यवहार Refको बदलने के बारे में है , आंतरिक सामान को बदलने के बारे में है जो किसी भी प्रकार की विशिष्टता को नहीं जोड़ता है, एपीआई जोड़ें, आदि उदाहरण: यदि मेरे पास कोई add(Object)फ़ंक्शन है और मैं एक add(List<Object>)फ़ंक्शन लागू करता हूं, तो मैं इसके साथ टिप्पणी करूंगा Mod। बाद में मैंने दोहराव को हटा दें और सीधे का उपयोग add(Object)में add(List<Object>)तो मैं का उपयोग करेगा Ref
रेंजर

14

हम निम्नलिखित का उपयोग करते हैं:

[टिकट की JIRA में आईडी]: [संदेश: क्या किया गया था] उदाहरण के लिए - एबीसी -123: प्रति क्षेत्र प्रस्तुति को कॉन्फ़िगर करने की क्षमता जोड़ा गया।

इस मामले में उचित एकीकरण के साथ आप अपने समस्या ट्रैकर में परिवर्तित / नष्ट / जोड़ी गई फ़ाइलों को प्राप्त करने में सक्षम होंगे। हालाँकि, इस बात से अवगत रहें कि आपको एबीसी -123: डन या एबीसी -123: कुछ को रोकना चाहिए, यदि संभव हो तो फिल्टर के साथ फिक्स्ड


बग फिक्स के लिए +1 लेकिन नई सुविधाओं के बारे में क्या? जब तक सभी नए फीचर्स JIRA में नहीं बनाए जाते ...
सरदारथियन -

3
@ श्रीधरन - व्यक्तिगत रूप से मैं JIRA में नई कार्यक्षमता के लिए ट्रैकर्स बनाऊंगा। हम बुग्जिला के साथ ऐसा करते हैं और यह परीक्षण टीम (और बाकी सभी) को एक रिलीज में डाली जा रही हर चीज की अच्छी दृश्यता देता है और जब वे परीक्षण / कोड की समीक्षा नहीं करते हैं / जो कुछ भी नहीं होता है, तो वे कम से कम बाहर जाते हैं।
जॉन हॉपकिंस

@JonHopkins: जबकि नई सुविधाओं के लिए बग ट्रैकर का उपयोग किया जा सकता है, यह आदर्श उपकरण नहीं हो सकता है। बेशक, आपका माइलेज अलग होगा ^ _ ~
सरदारथियन -

3
मुझे हर कमेटी को एक टिकट सौंपा गया था (कुछ टिकट आसानी से कई कमिट हो सकते हैं), प्यार करने के लिए आया था : यह बाद में कोड का निरीक्षण करते समय अधिक पृष्ठभूमि जानकारी प्राप्त करने का एक बहुत ही सरल तरीका है। "उन्होंने ऐसा क्यों किया ?" जब आपके पास कमेंट हो और कोई मुद्दा ट्रैकिंग प्रविष्टि हो तो जवाब देना ज्यादा आसान है ।
जोआचिम सॉर

क्या अलग शाखा पर टिकट देना बेहतर नहीं है?
तमसे सजेलेई

11

एक सरल नियम है, जो एक सम्मेलन है, जिसके बाद कई (यदि सभी नहीं) एससीएम और अधिकांश उपकरण जो एमएम के साथ काम करते हैं:

एक प्रतिबद्ध संदेश की पहली पंक्ति एक संक्षिप्त सारांश है, जबकि शेष संदेश में विवरण होता है।

इसलिए, अधिकांश उपकरण केवल पहली पंक्ति प्रदर्शित करते हैं, और मांग पर पूरे संदेश को प्रदर्शित करते हैं।

एक प्रतिबद्ध संदेश का एक विशिष्ट दुरुपयोग परिवर्तनों की एक बुलेट सूची है (केवल पहली गोली दिखाई जाएगी)। एक अन्य दुरुपयोग एक पंक्ति पर एक विस्तृत विस्तृत संदेश लिख रहा है।

इसलिए, अगर लागू करने के लिए एक चीज है, तो मैं कहूंगा कि यह पहली पंक्ति की अधिकतम लंबाई है।


मैंने कभी भी Git में एक विस्तृत विस्तृत संदेश लिखने का कारण नहीं देखा है। विस्तृत जानकारी इश्यू ट्रैकर में जाती है, और इसलिए मेरे कमिट मैसेज उस कमिटमेंट में किए गए (छोटे) बदलाव का सिर्फ एक-वाक्य विवरण हैं।
मार्नेन लाइबो-कोसर

9

व्यक्तिगत रूप से मैंने कभी भी सामान्य प्रतिबद्ध टेम्पलेट का उपयोग करने लायक नहीं देखा है। टिप्पणी को स्पष्ट रूप से कहना चाहिए कि कमिट क्या संबंधित हैं जैसे कि फीचर / बग फिक्स या परिवर्तन क्यों किए गए थे का एक संक्षिप्त विवरण।

क्या किया गया था इस पर जानकारी को शामिल नहीं किया जाना चाहिए, यह scm प्रणाली द्वारा निर्धारित किया जा सकता है। अधिक बग / सुविधा की जानकारी कभी भी बग और सुविधाओं को ट्रैक करने में होती है।

जब एक बग रिपोर्ट को कमिट के बाद अपडेट किया जाता है, तो मुझे लगता है कि बग रिपोर्ट में टिप्पणियों के साथ-साथ कमिट रिवीजन करना भी अच्छा है। इस तरह से आप कमेंट से लेकर बग रिपोर्ट तक, और बग रिपोर्ट की प्रत्येक टिप्पणी के लिए पा सकते हैं कि आप क्या कर रहे हैं

फिर जब किसी फ़ाइल के लिए संशोधन का इतिहास देखते हैं, तो आपके पास इतिहास का वर्णन करने वाले अच्छे संक्षिप्त संदेश होते हैं, लेकिन यह भी पता होता है कि अधिक विवरणों के लिए बग रिपोर्ट या कार्य विवरण कहाँ देखें।


4
यदि आप सही प्रारूप में विवरण दर्ज करते हैं, तो कई बग टूल आपके SCM टूल में संशोधन को सीधे लिंक करने देंगे। इसी तरह, कई एससीएम उपकरण बग डेटाबेस से सीधे जुड़ेंगे यदि आप सही प्रारूप में बग विवरण दर्ज करते हैं। IMO, जब तक आप ऐसा करते हैं, तब तक आप सुनहरे हैं।
डीन हार्डिंग

4

Git में Git हुक के साथ लगभग कुछ भी लागू करना संभव है । विचारों के लिए .it / हुक में उदाहरण देखें।

संदेश के रूप में, एक बहुत ही सामान्य मामले में, आप उस समस्या के बारे में पर्याप्त जानकारी शामिल करना चाहते हैं जो आप हल कर रहे थे और समाधान स्वयं इस प्रतिबद्ध को खोजने और पहचानने में सक्षम होने के लिए। ज्यादातर मामलों में समस्या को बग नंबर (आपके बग ट्रैकिंग सिस्टम के साथ उचित एकीकरण के साथ) संदर्भित किया जाएगा। यदि आपके पास अन्य प्रणालियाँ हैं, तो आपकी प्रक्रिया (कोड समीक्षा ट्रैकिंग सिस्टम की तरह) एकीकृत हो जाती है, तो उपयुक्त बिट्स को भी शामिल करें:

Extracted checking foobar range from bar() into foo(min, max) to re-use
in yadda() and blah(). foo() returns true if foobar is in the
specified range and false otherwise.

BugID: 123456
ReviewedBy: mabuddy
AutomergeTo: none

लेकिन आप इसे सरल रखना चाहते हैं। अन्यथा, लोग सिस्टम को धोखा देने और बेकार प्रतिबद्ध संदेशों का उत्पादन करने का एक तरीका खोज लेंगे।


0

हम युक्त टेम्पलेट का उपयोग करते हैं

  • बग / सुविधा / फिक्स की आईडी संख्या
  • कोड का परीक्षण किया गया है या नहीं, इसका वर्णन हाँ / नहीं
  • और कमिटमेंट के इरादे के संक्षिप्त विवरण के लिए एक विवरण अनुभाग

पहले दो को ज्यादातर समय (कभी-कभी तीनों) छोड़ दिया जाता है, इसलिए यह वास्तव में बहुत बड़ी बात नहीं है।


0

मेरे पास आम तौर पर पहचानकर्ता होता है जो कि टिकट ट्रैकिंग सिस्टम मैं उपयोग करता है या पहली पंक्ति के रूप में उच्च स्तर का अवलोकन करता है। फिर मेरे पास कमिटमेंट में विशिष्ट परिवर्तन के बिंदु "बुलेट" अंक हैं। इसलिए मैं कुछ ऐसा कर सकता था:

MyVideoGameProject-123 OR Inventory System Improvements
Made inventory GUI drap and drap
Added ability to have multiple bag slots to expand inventory capacity

यह मुझे पसंद है सबसे साफ-सुथरा कमिटमेंट है। यह प्रत्यक्ष और बात है। एक और कारण मैं इसे इस तरह से करता हूं कि अगर मैं एक परिवर्तन लॉग बनाना चाहता हूं, तो मैं बस सभी प्रतिबद्ध संदेश ले सकता हूं और इसे आसानी से परिवर्तन लॉग में पार्स कर सकता हूं।


0

[टिकट आईडी] [एबीसी] [विषय] [डब्ल्यूआईपी] संदेश, जहां:

  • टिकटआईड - टास्क रिपॉजिटरी में एक आइटम की आईडी
  • ABC - ऐड (फ़ीचर), फिक्स (बगफिक्स), str (स्ट्रक्चर), dep (डिपेंडेंसी) रेम (बैकवर्ड असंगति / रिमूवल), रिड (रीडेबिलिटी), रेफ (रिफैक्टिंग)
  • topicId - जेंकिंस और / या शाखा नाम और / या जेरिट के लिए विषय नाम के लिए एक चयनकर्ता हो सकता है
  • WIP - प्रगति में काम करता है या नहीं (अर्थात सतत एकीकरण के लिए इसकी आवश्यकता हो सकती है)
  • संदेश - संशोधन का विस्तार

उदाहरण:
[# 452567] [add] [menu_item] नई आइटम - अतिथि पुस्तिका
[# 452363] [तय] [banner_top] [WIP] 1024x300 का उपयोग अब किया जा सकता है
[# 452363] [fix [banner_top] 500x200 अब उपयोग किया जा सकता है
[ # 452713] [रेम] [पेज] बाएं मध्य विज्ञापन


आपका उत्तर मजबूत होगा यदि आपने समझाया कि आपको ऐसा क्यों लगता है कि यह एक अच्छा प्रारूप है। हालांकि इस प्रारूप का मूल्य आपके लिए स्वतः स्पष्ट हो सकता है, लेकिन यह मूल्य दूसरों के लिए उतना स्पष्ट नहीं है।

टिप्पणी के लिए धन्यवाद - हाँ मैं जल्द ही और अधिक विस्तार से बताऊंगा - मैं सिर्फ एक तथ्य के साथ शुरू करना चाहता था - एक अच्छा स्टैक फीचर होगा जो आप WIP के साथ उत्तर पर हस्ताक्षर कर सकते हैं :)
laplasz

'वर्क इन प्रोग्रेस' के लिए - क्या यह आपके लिए एक नोट है कि आप वापस आएंगे और संशोधन करेंगे, या क्या आप इसके साथ मास्टर होना चाहते हैं? यदि हां, तो क्यों?
JBRWilkinson

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