Jedes Mal, wenn Sie ein Commit in einem DVCS durchführen, erstellen Sie technisch einen Zweig in der Historie. Jedes Mal, wenn Sie ihn in das gesegnete Repository zurückschieben, integrieren Sie ihn wieder. Hier kommt der interessante Teil:
- Wenn während Ihres Commits niemand eine Änderung vorgenommen hat, sieht es nicht wie ein Zweig in der DAG aus (gerichteter azyklischer Graph).
- Wenn jemand anderes während Ihres Commits eine Änderung vorgenommen hat, sieht diese wie ein Zweig in der DAG aus, der nur unbenannt ist
Denken Sie daran, dass die Schaltfläche "Gabel" in Bitbucket / github? Das Verzweigen als Synonym für Verzweigung angesehen werden kann. Die Schaltfläche "Gabel" ist nur ein Klon dieses Repositorys für Ihr Konto.
Der einzige Vorteil des "Klonens in einen Zweig" besteht darin, dass Sie an zwei Punkten in der Geschichte gleichzeitig arbeiten können. Ironischerweise ist dies für Ihren Mitarbeiter ein gängiger Workflow, um gleichzeitig an verschiedenen Zweigen zu arbeiten (ohne hin und her gehen zu müssen) ).
Sagen Sie Ihrem Kollegen, er soll lernen, wie man verzweigt . Es ist sehr einfach. Hier finden Sie ein 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
"In Zweig verzweigen" ist sinnvoll, wenn Sie gleichzeitig in verschiedenen Zweigen arbeiten oder wenn Sie ein Experiment ausprobieren möchten, ohne einen permanenten Zweig im Verlauf zu erstellen, und ihn dennoch wieder in einen bereits vorhandenen Zweig integrieren können .
Ich persönlich mag diese Praxis nicht und bevorzuge es, Filialen zu machen und sie bei Bedarf zu schließen. Hier ist, wie Sie es tun:
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)
Hoffe, dies beseitigt Ihre Zweifel an der DVCS-Verzweigung, hier sind Verzweigungen nicht mehr beängstigend.