ทุกครั้งที่คุณทำคอมมิชชันใน DVCS คุณกำลังสร้างสาขาในประวัติศาสตร์ทุกครั้งที่คุณผลักมันกลับไปยังพื้นที่เก็บข้อมูลที่มีความสุขที่คุณรวมมันกลับมานี่เป็นส่วนที่น่าสนใจ:
- หากไม่มีใครทำการเปลี่ยนแปลงในระหว่างการกระทำของคุณมันจะไม่ดูเหมือนสาขาใน DAG (กราฟ acyclic กำกับ)
- หากมีคนอื่นทำการเปลี่ยนแปลงในระหว่างการกระทำของคุณมันจะมีลักษณะเหมือนสาขาใน DAG ซึ่งไม่มีชื่อเท่านั้น
จำปุ่ม "fork" ใน Bitbucket / github ได้หรือไม่การฟอร์กถือได้ว่าเป็นความหมายของการแตกแขนงและปุ่ม "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)
หวังว่าสิ่งนี้จะช่วยขจัดข้อสงสัยในการแตกแขนง DVCS ของคุณได้ที่นี่สาขาจะไม่น่ากลัวอีกต่อไป