जब भी आप DVCS में तकनीकी रूप से इतिहास में एक शाखा बना रहे हैं, तो हर बार जब आप इसे धन्य भंडार में वापस धकेल देते हैं तो आप इसे वापस एकीकृत कर देते हैं, यहाँ दिलचस्प हिस्सा आता है:
- यदि किसी ने आपकी प्रतिबद्धता के दौरान कोई बदलाव नहीं किया है, तो यह डीएजी (निर्देशित चक्रीय ग्राफ) में एक शाखा की तरह नहीं दिखेगा।
- यदि किसी और ने आपकी प्रतिबद्धता के दौरान कोई बदलाव किया है, तो यह केवल अनाम में DAG में एक शाखा की तरह दिखाई देगा
Bitbucket / github में "fork" बटन को याद रखें ?, forking को ब्रांचिंग का पर्याय माना जा सकता है, और "fork" बटन क्या आपके खाते में उस रिपॉजिटरी का सिर्फ एक क्लोन है।
"क्लोनिंग टू ब्रांच" का एकमात्र लाभ इतिहास में दो बिंदुओं पर एक साथ काम करने में सक्षम हो रहा है, और विडंबना यह है कि अपने सहकर्मी के लिए, यह एक ही समय में अलग-अलग शाखाओं पर काम करने के लिए एक सामान्य वर्कफ़्लो है (बिना पीछे और पीछे जाने के लिए) )।
अपने सहकर्मी को बताएं कि कैसे शाखा लगाना है , यह बहुत आसान है, यहाँ, एक ट्यूटोरियल है:
D:\>mkdir lol
D:\>cd lol
D:\lol>hg init
D:\lol>hg branch
default
D:\lol>touch lol
D:\lol>hg add lol
D:\lol>hg commit -m "lol"
D:\lol>hg branch lol
marked working directory as branch lol
(branches are permanent and global, did you want a bookmark?)
D:\lol>hg branches
default 0:35d562fafaf2
D:\lol>echo "lol" > lol
D:\lol>hg commit -m "New lol branch"
D:\lol>hg branches
lol 1:9384f923e78d
default 0:35d562fafaf2 (inactive)
D:\lol>hg branch
lol
D:\lol>hg update default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
D:\lol>hg branch
default
D:\lol>hg update lol
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
D:\lol>hg branch
lol
D:\lol>hg update default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
D:\lol>hg branch
default
D:\lol>hg merge lol
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
D:\lol>hg commit -m "lol merge"
D:\lol>hg branch
default
D:\lol>hg update lol
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
D:\lol>hg branch
lol
जब आप एक ही समय में अलग-अलग शाखाओं में काम कर रहे हों , या जब आप इतिहास में एक स्थायी शाखा बनाए बिना किसी प्रयोग को आजमाना चाहते हों, तब भी "ब्रांच टू ब्रांच" समझ में आता है और तब भी इसे पहले से मौजूद ब्रांच में वापस एकीकृत किया जा सकता है। ।
मुझे व्यक्तिगत रूप से यह अभ्यास पसंद नहीं है और यदि आवश्यक हो तो शाखाएं करना और उन्हें बंद करना पसंद करते हैं। यहाँ, यह है कि आप इसे कैसे करते हैं:
D:\lol>hg branches
default 2:46420aca1612
lol 1:9384f923e78d (inactive)
D:\lol>hg branch
lol
D:\lol>hg commit --close-branch -m "Obai, glorious lol branch"
D:\lol>hg branches
default 2:46420aca1612
D:\lol>hg branch
lol
D:\lol>hg update default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
D:\lol>hg branches
default 2:46420aca1612
D:\lol>hg branches --closed
default 2:46420aca1612
lol 3:4b79c577e029 (closed)
आशा है कि यह आपके डीवीसीएस शाखाकरण के संदेह को दूर करता है, यहां शाखाएं अब डरावनी नहीं हैं।