DVCSでコミットを行うたびに、技術的には履歴にブランチを作成し、祝福されたリポジトリにプッシュして戻すたびに、統合します。興味深い部分がここにあります。
- コミット中に誰も変更を加えなかった場合、DAG(有向非循環グラフ)のブランチのようには見えません
- コミット中に他の誰かが変更を加えた場合、DAG内のブランチのように見え、名前が付けられていない
Bitbucket / githubの「fork」ボタンを覚えていますか?forkはブランチの同義語と見なすことができ、「fork」ボタンが行うことは、アカウントへのそのリポジトリのクローンにすぎません。
「ブランチへのクローン作成」の唯一の利点は、歴史の2つのポイントで同時に作業できることです。皮肉なことに同僚にとっては、異なるブランチで同時に作業するための一般的なワークフローです(前後に移動する必要はありません) )。
分岐する方法を学ぶように同僚に伝えてください、これは非常に簡単です、ここにチュートリアルがあります:
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の分岐に関する疑問が解消されるといいのですが、ここでは分岐が怖くなくなりました。