जीआईटी शाखाओं के नामकरण के लिए आमतौर पर इस्तेमाल की जाने वाली प्रथाओं के कुछ उदाहरण क्या हैं? [बन्द है]


1120

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

मैंने यहाँ पुराने धागों को देखकर सीखा है कि मैं नाम के साथ शाखाओं का नामकरण शुरू कर सकता हूं, जैसे कि, नाम, विषय / कार्य, या उसके बाद कुछ। मैं ऐसा करना शुरू कर सकता हूं और यह देख सकता हूं कि क्या यह चीजों को बेहतर ढंग से व्यवस्थित रखने में मदद करता है।

गिट शाखाओं के नामकरण के लिए कुछ सर्वोत्तम अभ्यास क्या हैं?

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


हां - शायद अच्छा है कि आप उन शाखाओं को इधर-उधर न रखें, जो आपके साथ समाप्त होने के बाद उपयोगी न हों। जब तक एक विषय शाखा रखने का एक अच्छा कारण नहीं है (उदाहरण के लिए, बाद में परामर्श करने के लिए), इसे हटाने में कोई समस्या नहीं है। Git ब्रांचिंग को आसान बनाता है, और एक कोरोलरी यह है कि आप बहुत सारी तुच्छ शाखाओं के साथ समाप्त हो सकते हैं, जिन्हें बिना किसी विशेष हलचल के साफ किया जा सकता है।
एरिक वॉकर

14
यह भी देखें github.com/agis-/git-style-guide
Agis


18
StackExchange नेटवर्क के भीतर इस प्रकार के प्रश्नों के लिए एक स्थान होना चाहिए। बहुत गुस्सा करने वाला गुस्सा जब कोई इस तरह एक अच्छा सवाल पूछता है और फिर नियमों का पालन नहीं करने के लिए बंद हो जाता है। अगर ऐसा होता रहता है, तो शायद इस तरह के सवालों का समर्थन करने की जरूरत है। केवल, इन्हें संभवतः ओवरफ्लो साइट के भीतर लागू किया जाना होगा क्योंकि वे प्रोग्रामिंग प्रकार के प्रश्नों से बहुत निकट से संबंधित हैं। मेरे लिए, अतिप्रवाह, "उद्देश्यपूर्ण उत्तर देने योग्य प्रश्नों" (बहुत विशिष्ट) के लिए नहीं है, यह "प्रोग्रामिंग प्रश्न हैं।"
निक रेस

@ हम जीरा मुद्दे की कुंजी का उपयोग करते हैं, उदाहरण के लिए, लघु शीर्षक के साथ संयुक्त:KEY-1234/allow-users-to-do-smart-stuff
रोबू

जवाबों:


937

यहां कुछ शाखा नामकरण परंपराएं हैं जिनका मैं उपयोग करता हूं और उनके लिए कारण

शाखा नामकरण सम्मेलनों

  1. अपनी शाखा के नाम की शुरुआत में ग्रुपिंग टोकन (शब्द) का प्रयोग करें।
  2. परिभाषित करें और लघु लीड टोकन को शाखाओं में अंतर करने के लिए एक तरह से उपयोग करें जो आपके वर्कफ़्लो के लिए सार्थक है।
  3. अपने शाखा नामों के अलग-अलग हिस्सों में स्लैश का उपयोग करें।
  4. अग्रणी भागों के रूप में नंगे नंबरों का उपयोग न करें।
  5. लंबे समय तक रहने वाली शाखाओं के लिए लंबे वर्णनात्मक नामों से बचें।

समूह टोकन

अपनी शाखा के नामों के सामने "समूहीकरण" टोकन का उपयोग करें।

group1/foo
group2/foo
group1/bar
group2/bar
group3/bar
group1/baz

समूहों का नाम दिया जा सकता है जो भी आप अपने वर्कफ़्लो से मेल खाते हैं। मुझे खदान के लिए छोटी संज्ञाओं का उपयोग करना पसंद है। अधिक स्पष्टता के लिए आगे पढ़ें।

लघु अच्छी तरह से परिभाषित टोकन

लघु टोकनों का चयन करें ताकि वे आपके प्रत्येक शाखा के नाम में बहुत अधिक शोर न जोड़ें। मैं इनका उपयोग करता हूं:

wip       Works in progress; stuff I know won't be finished soon
feat      Feature I'm adding or expanding
bug       Bug fix or experiment
junk      Throwaway branch created to experiment

इनमें से प्रत्येक टोकन का उपयोग आपको यह बताने के लिए किया जा सकता है कि आपके वर्कफ़्लो का कौन सा हिस्सा प्रत्येक शाखा का है।

ऐसा लगता है कि परिवर्तन के विभिन्न चक्रों के लिए आपके पास कई शाखाएं हैं। मुझे नहीं पता कि आपके चक्र क्या हैं, लेकिन मान लें कि वे 'नए', 'परीक्षण' और 'सत्यापित' हैं। आप इन टैगों के संक्षिप्त संस्करणों के साथ अपनी शाखाओं को नाम दे सकते हैं, हमेशा एक ही तरीके से, दोनों समूह के लिए और आपको याद दिलाने के लिए कि आप किस चरण में हैं।

new/frabnotz
new/foo
new/bar
test/foo
test/frabnotz
ver/foo

आप जल्दी से बता सकते हैं कि कौन सी शाखाएं प्रत्येक अलग-अलग चरण में पहुंच गई हैं, और आप आसानी से Git के पैटर्न मिलान विकल्पों का उपयोग करके उन्हें एक साथ समूहित कर सकते हैं।

$ git branch --list "test/*"
test/foo
test/frabnotz

$ git branch --list "*/foo"
new/foo
test/foo
ver/foo

$ gitk --branches="*/foo"

अलग-अलग हिस्सों में स्लैश का उपयोग करें

आप शाखा नामों में से किसी भी परिसीमन का उपयोग कर सकते हैं, लेकिन मुझे लगता है कि स्लैश सबसे अधिक लचीला है। आप डैश या डॉट्स का उपयोग करना पसंद कर सकते हैं। लेकिन स्लैश आपको रिमोट से / पुश करने या लाने पर कुछ शाखा का नाम बदलने देता है।

$ git push origin 'refs/heads/feature/*:refs/heads/phord/feat/*'
$ git push origin 'refs/heads/bug/*:refs/heads/review/bugfix/*'

मेरे लिए, मेरे शेल में टैब विस्तार (कमांड पूरा होने) के लिए स्लैश भी बेहतर काम करते हैं। जिस तरह से मैंने इसे कॉन्फ़िगर किया है मैं अलग-अलग उप-भागों के साथ शाखाओं के लिए खोज कर सकता हूं भाग के पहले अक्षर टाइप करके और टैब कुंजी दबाकर। Zsh फिर मुझे उन शाखाओं की एक सूची देता है जो मेरे द्वारा टाइप किए गए टोकन के भाग से मेल खाती हैं। यह पूर्ववर्ती टोकन के साथ-साथ एम्बेडेड वाले के लिए काम करता है।

$ git checkout new<TAB>
Menu:  new/frabnotz   new/foo   new/bar


$ git checkout foo<TAB>
Menu:  new/foo   test/foo   ver/foo

(Zshell कमांड पूरा होने के बारे में बहुत विन्यास योग्य है और मैं इसे डैश, अंडरस्कोर या डॉट्स को उसी तरह से हैंडल करने के लिए कॉन्फ़िगर कर सकता हूं। लेकिन मैं नहीं चुनता हूं।)

यह आपको कई गिट कमांड में शाखाओं की खोज करने देता है, जैसे:

git branch --list "feature/*"
git log --graph --oneline --decorate --branches="feature/*" 
gitk --branches="feature/*" 

कैविएट: जैसा कि स्लिप में टिप्पणियों में बताया गया है, स्लैश समस्या पैदा कर सकता है। क्योंकि शाखाओं को पथ के रूप में लागू किया जाता है, आपके पास "फू" नाम की एक शाखा और "फू / बार" नाम की एक अन्य शाखा नहीं हो सकती है। यह नए उपयोगकर्ताओं के लिए भ्रामक हो सकता है।

नंगे नंबरों का उपयोग न करें

अपनी शाखा के नामकरण योजना के भाग के रूप में नंगे नंबरों (या हेक्स संख्या) का उपयोग न करें। संदर्भ नाम के टैब-विस्तार के अंदर, git यह तय कर सकता है कि एक शाखा नाम के बजाय एक नंबर sha-1 का हिस्सा है। उदाहरण के लिए, मेरी समस्या ट्रैकर दशमलव संख्या के साथ बग का नाम है। मैं भ्रम से बचने के लिए सिर्फ nnnnn के बजाय अपनी संबंधित शाखाओं का नाम CRnnnnn रखता हूं।

$ git checkout CR15032<TAB>
Menu:   fix/CR15032    test/CR15032

अगर मैंने सिर्फ 15032 का विस्तार करने की कोशिश की, तो यह अनिश्चित होगा कि क्या मैं SHA-1 या शाखा नामों की खोज करना चाहता हूं, और मेरी पसंद कुछ हद तक सीमित होगी।

लंबे वर्णनात्मक नामों से बचें

जब आप शाखाओं की सूची देख रहे हों तो लंबी शाखा के नाम बहुत मददगार हो सकते हैं। लेकिन यह उस तरीके से प्राप्त हो सकता है जब सजे हुए एक-लाइन लॉग को देख रहा हो, क्योंकि शाखा के नाम एकल लाइन को खा सकते हैं और लॉग के दृश्य भाग को संक्षिप्त कर सकते हैं।

दूसरी ओर लंबी शाखा के नाम "मर्ज कमिट्स" में अधिक सहायक हो सकते हैं यदि आप आदतन उन्हें हाथ से नहीं लिखते हैं। डिफ़ॉल्ट मर्ज कमिट मैसेज है Merge branch 'branch-name'। मैसेज दिखाने के लिए आपको मददगार साबित हो सकता है जैसे कि Merge branch 'fix/CR15032/crash-when-unformatted-disk-inserted'इसके बजाय मैसेज दिखाते हैं Merge branch 'fix/CR15032'


156
जैसे रूपों का एक मिश्रण का उपयोग कर के लिए एक नकारात्मक पक्ष यह bug/20574/frabnotz-finderऔर bug/20424है कि एक बार आप किसी उप-टोकन के बिना शुरू करते हैं, आप बाद में एक और इसके विपरीत नहीं जोड़ सकते है। ईजी: यदि आप एक bug/20424शाखा बनाते हैं , तो आप bug/20424/additional-fixingबाद में एक शाखा नहीं बना सकते (जब तक कि आप bug/20424शाखा को हटा नहीं देते )। इसी तरह, यदि bug/20574/frabnotz-finderआप पहले से ही एक शाखा हैं, तो आप एक bug/20574शाखा नहीं बना सकते । मैं या तो इस तरह के मामलों (जैसे bug/20574_frabnotz-finder) में एक गैर-उप-टोकन सीमांकक का उपयोग करता हूं , या उप-टोकन (जैसे bug/20424/main) के लिए एक डिफ़ॉल्ट नाम का चयन करता हूं ।
स्लिप डी। थॉम्पसन

5
यह भी एक निर्देशिका सूची दृश्य की तरह टोकन विभाजन को ध्वस्त करने की अनुमति देने के लिए कुछ गिट GUI- आधारित उपकरणों को रोकने का लाभ है। उपरोक्त उदाहरण में, यदि आप एक देखना चाहते हैं featureसमूह और एक bugसमूह, विस्तार योग्य दिखाने के लिए foo, barपूर्व और एक के लिए टैग 20574, 20592समूहों और 20424, 21334टैग बाद के लिए।
स्लिप डी। थॉम्पसन

47
मैं एक शाखा शुरू करने जा रहा हूँ, जो कभी भी शाखा नामकरण में स्लैश का उपयोग नहीं करेगी। इसका कारण यह है कि यदि उदाहरण के लिए CI पर, आप शाखा नाम का उल्लेख करना चाहते हैं, उदाहरण के लिए पैकेजिंग कोड, तो आप एक यूरी या PATH का निर्माण करते समय शाखा के नाम का उल्लेख करना चाहते हैं (उदाहरण के लिए), शायद निर्माण एक बैश स्क्रिप्ट में एक उड़ी; आपको एक url भाग जोड़ने की वजह से uri बनाने में समस्या होगी। हाँ इसके स्लैश को बदलने के लिए संभव है, लेकिन इसे सुलझाने में मुझे बहुत समय लगेगा।
एडम स्पेंस

13
क्या यह एक समस्या है कि फॉरवर्ड स्लैश के कुछ मामलों में गिट के लिए अर्थ है? उदाहरण के लिए git branch -a, remotes/origin/masterजब मैं देख रहा हूं , और जब मैं किसी शाखा के बारे में बताता हूं, तो मैं आगे की स्लैश का उपयोग नहीं करता हूं और इसलिए जब मैं एक को देखता हूं, तो मुझे पता है कि यह एक "विशेष" संदर्भ है।
डॉगवेदर

11
क्या आप फू और बार कृपया के बजाय कुछ उदाहरणों का उपयोग कर सकते हैं?
वर्थि 7

329

विंसेंट ड्रेज़ेन द्वारा एक सफल गिट ब्रांचिंग मॉडल में अच्छे सुझाव हैं। एक तस्वीर नीचे है। यदि यह ब्रांचिंग मॉडल आपको अपील करता है कि आप git में फ्लो एक्सटेंशन पर विचार करें । दूसरों ने प्रवाह के बारे में टिप्पणी की है

Driessen के मॉडल में शामिल हैं

  • एक मास्टर शाखा, जिसका उपयोग केवल रिलीज के लिए किया जाता है। विशिष्ट नाम master

  • उस शाखा से एक "विकसित" शाखा। यह सबसे मुख्य लाइन काम के लिए इस्तेमाल किया जाता है। सामान्य रूप से नामित develop

  • एकाधिक सुविधा शाखाएं विकसित शाखा से दूर होती हैं। सुविधा के नाम के आधार पर नाम। इन्हें फिर से विकसित किया जाएगा, न कि मास्टर या रिलीज शाखाओं में।

  • केवल बग फिक्स और कोई नई सुविधाओं के साथ, उम्मीदवार रिलीज आयोजित करने के लिए रिलीज शाखा। विशिष्ट नाम rc1.1

मास्टर से आने वाले परिवर्तनों के लिए हॉटफ़िक्स अल्पकालिक शाखाएं हैं और विकास शाखा में शामिल हुए बिना मास्टर में जाएंगे।

यहां छवि विवरण दर्ज करें


129
सिवाय इसके कि यह वास्तव में प्रश्न को संबोधित नहीं करता है, क्योंकि यह उपयोगकर्ता तक नामकरण सम्मेलनों का एक गुच्छा छोड़ देता है, विशेष रूप से सुविधा शाखाओं के लिए (वे "कुछ भी हो सकता है सिवाय गुरु, विकास, रिहाई- या हॉटफिक्स- "
ब्रायन

1
@ ब्रायन उन समस्याओं के संदर्भ में एक फीचर नामकरण सम्मेलन में मदद करेगा जो मॉडल हल करता है? मैं वास्तव में नहीं देखता, वर्तमान में, सुविधाओं में और अधिक बदलाव कैसे वास्तव में मदद करता है। हो सकता है कि भविष्य बनाम अगली रिलीज़ हो, लेकिन यह परक्राम्य है और इस तरह नाम का हिस्सा नहीं होना चाहिए। पठनीयता के लिए, हो सकता है कि उन्हें केवल सुविधा के साथ पूर्व-निर्धारित किया जाए - * पर्याप्त होगा। आप कुछ समय के लिए मतदान कर चुके हैं, इसलिए मैं आपकी विचार प्रक्रिया को सुनने के लिए उत्सुक हूं ...
Nick Res

2
हालांकि अच्छी जानकारी यह उत्तर नामकरण सम्मेलन के बजाय प्रवाह के प्रश्न को संबोधित करती है। मुझे लगता है कि ओपी यह जानना चाहता है कि वास्तविक शब्दों का उपयोग करने के लिए क्या है (संज्ञा बनाम क्रिया), सीमांकक, केस आदि
Caltor

6
पुस्तक कंटीन्यूअस डिलीवरी (पृष्ठ 36) का तर्क है कि यह मॉडल कंटीन्यूअसली टू कंटिन्यूअस इंटीग्रेशन की तरह है ... अनिवार्य रूप से, यह वास्तव में "फुर्तीली" नहीं है।
MARKON

यह वास्तव में पूछे गए प्रश्न का उत्तर नहीं देता है। यह एक विशिष्ट विकास और रिलीज शेड्यूल में एक विशिष्ट git वर्कफ़्लो को एकीकृत करने में अंतर्दृष्टि प्रदान करता है , हालांकि, सेशन उन सम्मेलनों पर सलाह की तलाश कर रहा है जो वास्तव में शाखाओं को कहते हैं।
व्हीलर

56

मेरी व्यक्तिगत प्राथमिकता विषय शाखा के साथ होने के बाद शाखा का नाम हटाना है।

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

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

यह आउटपुट को git branchऔर अधिक उपयोगी बनाता है : यह केवल लंबे समय तक रहने वाली शाखाओं और सक्रिय विषय शाखाओं को सूचीबद्ध करता है, न कि सभी शाखाओं को।


53

मैंने मिश्रित और विभिन्न योजनाओं से मिलान किया है जो मैंने देखा है और उस टूलिंग पर आधारित हूं जिसका मैं उपयोग कर रहा हूं।
तो मेरा पूरा शाखा नाम होगा:

नाम / सुविधा / मुद्दा-ट्रैकर संख्या / शॉर्ट वर्णन

जिसका अनुवाद होगा:

माइक / ब्लॉग / RSSI-12 / लोगो ठीक

भागों को आगे के स्लैश से अलग किया जाता है क्योंकि उन लोगों को आसान संगठन के लिए सोर्सट्री में फ़ोल्डर्स के रूप में व्याख्या की जाती है। हम अपने इश्यू ट्रैकिंग के लिए जीरा का उपयोग करते हैं, ताकि संख्या सहित सिस्टम में दिखना आसान हो जाए। उस संख्या को शामिल करना भी इसे खोज योग्य बनाता है जब एक पुल अनुरोध सबमिट करने का प्रयास करते समय जीथब के अंदर उस मुद्दे को खोजने की कोशिश की जाती है।


मैं कमिट मैसेज (GitHub -> Pivotal Tracker इंटीग्रेशन के लिए) में बग / फीचर नंबर को छोड़कर एक ही हूं।
सिंह

मैं सोच रहा हूं कि RSSI का मतलब क्या है।
रेंशुकी

@renshuki यह केवल एक सामान्य जीरा प्रोजेक्ट कुंजी है। जो भी समस्या ट्रैकर आप उपयोग करते हैं, टिकट आईडी
माइक जीआर

@MikeG सटीक के लिए धन्यवाद!
रेंशुकी

3
मैं वर्णन के साथ अंक संख्या को पास करने के अलावा उसी का उपयोग करता हूं:name/feature/issue-tracker-number-short-description
लेफ़्लेग

22

यह प्रत्येक कार्य के लिए तीन शाखाएँ / विलय क्यों करता है? क्या आप इसके बारे में अधिक बता सकते हैं?

यदि आप बग ट्रैकिंग सिस्टम का उपयोग करते हैं, तो आप शाखा नाम के भाग के रूप में बग नंबर का उपयोग कर सकते हैं। यह शाखा नामों को अद्वितीय रखेगा, और आप उन्हें एक छोटे और वर्णनात्मक शब्द या दो के साथ उपसर्ग कर सकते हैं, जैसे कि उन्हें मानव पठनीय रखने के लिए "ResizeWindow-43523"। जब आप शाखाओं को साफ करने जाते हैं, तो इससे चीजों को आसान बनाने में मदद मिलती है, क्योंकि आप संबंधित बग को देख सकते हैं। इस तरह से मैं आमतौर पर अपनी शाखाओं का नाम देता हूं।

चूंकि इन शाखाओं को अंततः मास्टर में वापस विलय किया जा रहा है, इसलिए आपको विलय के बाद उन्हें सुरक्षित हटाना चाहिए। जब तक आप विलय नहीं कर रहे हैं --squash, तब तक शाखा का पूरा इतिहास अभी भी मौजूद रहेगा, आपको इसकी आवश्यकता होनी चाहिए।


12

ध्यान दें, जैसा कि कमिटेड e703d7 या प्रतिबद्ध b6c2a0d (मार्च 2014) में दर्शाया गया है , अब Git 2.0 का हिस्सा है, आपको एक और नामकरण सम्मेलन मिलेगा (जिसे आप शाखाओं पर लागू कर सकते हैं)।

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

शाखा नाम में स्थान नहीं हो सकता (देखें कि " शाखा नाम के अंतर्गत कौन से वर्ण अवैध हैं? " और git check-ref-formatमैन पेज )।

इसलिए प्रत्येक शाखा के नाम के लिए जिसे एक बहु-शब्द अभिव्यक्ति द्वारा दर्शाया जाएगा, -एक विभाजक के रूप में ' ' (डैश) का उपयोग करना एक अच्छा विचार है।


7

फ़ार्कट्रॉनिक्स के सुझाव पर अमल करते हुए, हम जीरा टिकट नंबरों को मर्क्यूरियल में इस्तेमाल कर रहे हैं, और मैं उन्हें git शाखाओं के लिए उपयोग करना जारी रखने की योजना बना रहा हूं। लेकिन मुझे लगता है कि टिकट की संख्या अपने आप में काफी अनोखी है। हालांकि शाखा नाम में वर्णनात्मक शब्द के लिए सहायक हो सकता है क्योंकि फ़ार्कट्रॉनिक्स ने नोट किया है, यदि आप अक्सर शाखाओं के बीच स्विच कर रहे हैं, तो आप शायद कम टाइप करना चाहते हैं। फिर यदि आपको शाखा का नाम जानना है, तो टिकट में संबंधित कीवर्ड के लिए जीरा में देखें यदि आप इसे नहीं जानते हैं। इसके अलावा, आपको प्रत्येक टिप्पणी में टिकट नंबर शामिल करना चाहिए।

यदि आपकी शाखा किसी संस्करण का प्रतिनिधित्व करती है, तो ऐसा प्रतीत होता है कि आम कन्वेंशन xxx नामों का उपयोग करना है (उदाहरण: "1.0.0") शाखा नामों के लिए प्रारूप और vx.xx (उदाहरण "v1.0.0") टैग नामों के लिए (संघर्ष से बचने के लिए) । यह भी देखें: एक-मानक-नामकरण-सम्मेलन-के लिए git- टैग है


1
क्या संघर्ष के साथ कोई मुद्दा है? यदि इरादा एक v1.2.4शाखा के लिए अंत में एक v1.2.4टैग के साथ अंतिम बिंदु तक ले जाता है (क्या मैं यह मानने में सही हूं कि यह वह स्थिति है जहां आप एक संस्करण के बाद शाखाओं और टैग दोनों का नामकरण कर रहे हैं) , तो इससे कोई फर्क नहीं पड़ता? टैग अभी भी refs/tags/v1.2.4और शाखा में पहुंचा जा सकता है refs/heads/v1.2.4, और ऐसा प्रतीत होता है कि Git टैग नाम को तब पसंद करेगा जब यह अस्पष्ट (चेतावनी के साथ) हो।
स्लिप डी। थॉम्पसन

1
संस्करण उदाहरण के लिए, जैसा कि मैंने अपने उत्तर में उल्लेख किया है, एक सुझाया गया अभ्यास टैग नामों के लिए "v" के साथ उपसर्ग करना है, न कि शाखाएं। यदि आप गलत सूचना से बच सकते हैं, तो अस्पष्टता से बचें और क्योंकि इससे सड़क पर आने वाली समस्याओं का कारण बन सकता है, जो कि अगले नवीनतम और महानतम वीसीएस है।
गैरी एस बुनकर

2
मैंने हाल ही में एक रेपो के साथ काम किया है जहाँ हमने प्रत्येक संस्करण शाखा को उसी नाम के टैग के साथ बंद किया है। यह काफी अच्छी तरह से काम करता है क्योंकि इसमें कोई अस्पष्टता नहीं है (ज्यादातर मामलों में संबंधित शाखा पर अंतिम बिंदु के लिए टैग इंगित करता है), और जब हो सकता है, तो गिट "सही काम करता है" (एक चेतावनी के साथ)। मैं इसे पसंद करता हूं क्योंकि अगर कोई हड्डी की अध्यक्षता वाली गलती करता है और कैप्ड-ऑफ शाखा में आगे आता है, तो गिट टैग चुनना जारी रखेगा, जो कि इरादा है। प्रणाली के नियंत्रण में सब कुछ होने पर अस्पष्टता चीजों को सरल बना सकती है, और इरादे स्पष्ट हैं।
स्लिप डी। थॉम्पसन जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.