Setiap kali Anda membuat komit dalam DVCS, Anda secara teknis membuat cabang dalam sejarah, setiap kali Anda mendorongnya kembali ke repositori diberkati yang Anda integrasikan kembali, inilah bagian yang menarik:
- Jika tidak ada yang membuat perubahan selama komit Anda, itu tidak akan terlihat seperti cabang di DAG (grafik asiklik langsung)
- Jika orang lain melakukan perubahan selama komit Anda, itu akan terlihat seperti cabang di DAG, hanya tanpa nama
Ingat tombol "fork" di Bitbucket / github ?, forking dapat dianggap sebagai sinonim dari percabangan, dan apa yang dilakukan tombol "fork" hanyalah tiruan dari repositori ke akun Anda.
Satu-satunya keuntungan dari "kloning ke cabang" adalah dapat bekerja secara bersamaan di dua titik dalam sejarah, dan ironisnya bagi rekan kerja Anda, itu adalah alur kerja yang umum untuk bekerja pada cabang yang berbeda pada saat yang sama (tanpa harus bolak-balik ).
Beritahu rekan kerja Anda untuk belajar bercabang , sangat mudah, di sini, memiliki tutorial:
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
"Kloning ke cabang" masuk akal ketika Anda bekerja di cabang yang berbeda secara bersamaan , atau, ketika Anda ingin mencoba eksperimen tanpa membuat cabang permanen dalam sejarah dan masih dapat mengintegrasikannya kembali ke cabang yang sudah ada .
Saya pribadi tidak suka latihan ini dan lebih suka melakukan cabang dan menutupnya jika perlu. Di sini, ini adalah bagaimana Anda melakukannya:
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)
Semoga ini menghapus keraguan DVCS Anda, di sini cabang tidak menakutkan lagi.