यहाँ अपने शाखा की शुरुआत में कुछ शाखा नामकरण सम्मेलनों है कि मैं का उपयोग करें और उनके लिए कारणों
शाखा नामकरण सम्मेलनों
- ग्रुपिंग का उपयोग टोकन (शब्द) कर रहे हैं नाम।
- अपने वर्कफ़्लो के लिए सार्थक तरीके से शाखाओं को अलग करने के लिए छोटे लीड टोकन को परिभाषित करें और उपयोग करें।
- अपनी शाखा के नामों के हिस्सों को अलग करने के लिए स्लेश का उपयोग करें।
- नंगे संख्याओं को प्रमुख भागों के रूप में उपयोग न करें।
- लंबी अवधि की शाखाओं के लिए लंबे वर्णनात्मक नामों से बचें।
समूह टोकन
उपयोग अपनी शाखा के नाम के सामने "समूहीकरण" टोकन।
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 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 आदेश, इस तरह में:
git branch --list "feature/*"
git log --graph --oneline --decorate --branches="feature/*"
gitk --branches="feature/*"
चेतावनी: Slipp टिप्पणी में बताते हैं के रूप में, स्लैश समस्याएं पैदा कर सकता। चूंकि शाखाओं को पथ के रूप में लागू किया जाता है, इसलिए आपके पास "foo" नामक शाखा नहीं हो सकती है और "foo/bar" नाम की एक और शाखा नहीं हो सकती है। यह नए उपयोगकर्ताओं के लिए भ्रमित हो सकता है।
नंगे संख्या
का उपयोग अपनी शाखा नामकरण योजना के भाग के रूप में उपयोग के नंगे संख्या (या हेक्स संख्या) का उपयोग न करें न करें। किसी संदर्भ नाम के टैब-विस्तार के अंदर, गिट यह तय कर सकता है कि एक शाखा शाखा नाम के बजाय शिया -1 का हिस्सा है। उदाहरण के लिए, मेरे अंक ट्रैकर दशमलव संख्याओं के साथ बग नाम। मैं भ्रम से बचने के लिए सिर्फ nnnnn की बजाय मेरी संबंधित शाखाओं CRnnnnn नाम।
$ git checkout CR15032<TAB>
Menu: fix/CR15032 test/CR15032
अगर मैं विस्तार करने के लिए करने की कोशिश की सिर्फ 15,032, Git अनिश्चित हैं कि मैं SHA-1 के या शाखा नाम खोज करने के लिए करना चाहता था हो सकता है, और मेरी पसंद कुछ हद तक सीमित होगा।
बचें लंबे वर्णनात्मक नाम
लांग शाखा के नाम बहुत उपयोगी है जब आप शाखाओं की एक सूची को देख रहे हैं हो सकता है। लेकिन यह सजाए गए एक-लाइन लॉग को देखकर रास्ते में जा सकता है क्योंकि शाखा के नाम अधिकतर पंक्ति को खा सकते हैं और लॉग के दृश्य भाग को संक्षिप्त कर सकते हैं।
दूसरी ओर लंबी शाखा के नाम "मर्ज काम करने" में अधिक सहायक हो सकते हैं यदि आप उन्हें हाथ से फिर से लिखना नहीं चाहते हैं। डिफ़ॉल्ट विलय प्रतिबद्ध संदेश Merge branch 'branch-name'
है। Merge branch 'fix/CR15032'
के बजाय Merge branch 'fix/CR15032/crash-when-unformatted-disk-inserted'
के रूप में संदेशों को मर्ज करने के लिए आपको और अधिक सहायक मिल सकता है।
हां - शायद उन लोगों के आस-पास न रखने या उन शाखाओं को धक्का न दें जो आपके साथ समाप्त होने के बाद उपयोगी नहीं हैं। जब तक कोई विषय शाखा रखने के लिए कोई अच्छा कारण न हो (उदा।, इसे बाद में परामर्श करने के लिए), इसे हटाने में कोई समस्या नहीं है। गिट ब्रांचिंग को आसान बना देता है, और एक अनुशासनिक यह है कि आप चारों ओर झूठ बोलने वाली कई छोटी शाखाओं के साथ समाप्त हो सकते हैं जिन्हें बिना किसी एडो के साफ किया जा सकता है। –
यह भी देखें https://github.com/agis-/git-style-guide – Agis
पूर्णता के लिए, कुछ [वर्ण अनुक्रम जिन्हें आप उपयोग नहीं कर सकते हैं] (http://stackoverflow.com/a/28183192/313445) । –