感觉奇怪的原因是您延迟提交,直到您想与其他人集成。
分布式版本控制的一大特点是提交是本地的。因为它们是本地的,所以你应该经常提交——每次你完成一小部分一致的工作时提交。您的提交不会立即施加于其他人,因此您不会通过进行许多小提交来打断他们。
如果您开始进行更多提交,您将看到您的工作流程变为:
$ hg commit -m "Refactoring for Issue123"
$ hg commit -m "Basic functionality for Issue123"
$ hg commit -m "Fixed off-by-one error (Issue123)"
$ hg commit -m "Finished implementing Issue123"
$ hg commit -m "Added more tests for Issue123"
$ hg commit -m "Begin use new function from Issue123"
$ hg pull
$ hg merge
$ hg commit -m "Merge"
在这里,合并提交与“真实”提交的比率要合理得多。
许多人(包括我自己)喜欢使用rebase 扩展来完全避免合并。该扩展通过伪造历史来线性化提交,这样看起来就像您在使用hg pull
. 工作流程中唯一的变化是您hg rebase
而不是hg merge
上面然后跳过最终提交。