扩展和澄清一下其他人所说:常犯和灵活的推并不是相互排斥的。
您确实想提前计划,并进行提交,以便您能够适应。这意味着两件事:你需要确保你确实经常提交,并且你需要经常分支(如在git中)。如果您的提交量很小,那么稍后需要将您的部分工作有选择地分组时,将更容易进行重组。如果你的分支组织良好,你可能已经有一个分支,这正是你想要推动的。
比较这两种:
One branch, few commits:
- A1 - B1 - C1 - B2 - A2 - B3 - C3 (master)
Many branches, many commits:
M1 - M2 (master)
/
o - A1 - A2 - A3 - A4 - A5 - A6 (topicA)
|\
| B1 - B2 - B3 - B4 - B5 - B6 - B7 (topicB)
\
C1 - C2 - C3 - C4 - C5 (topicC)
现在,如果你想释放其中的任何三个主题原样,所有你所要做的就是把它合并掌握和推动!如果你想释放一半的topicA,并且在提交A1,A3,A4和A6时需要处理这一半,那么你需要做的就是重新设置topicA,将这四个提交放在第一位,将最后一个合并到master中,并推动。 topicA(A2和A5)的其余部分可以继续进行下一步工作。
M1 - M2 ------------- X (master)
/ /
o - A1 - A3' - A4' - A6' - A2' - A5' (topicA)
(提交由A1' 表示......因为git的,一两次提交内容相同,但不同的父母实际上是不同的提交。)
,然后命令rmdir卡车接力?在PC上,上次我是“hg clone”和“hg update”,它就像500MB,所以如果我执行上面的步骤(2)(hg克隆),即使在PC上也不会是非常大的数据? (只要确保不要执行“hg update”,否则它将提取500MB数据?) – 2010-06-10 19:15:09
如果空间问题(或者即使不是这样),请在本地克隆。 Mercurial将创建硬链接,因此额外的空间不会被消耗。 hg clone -rSERVER_REVISION_HASH trunk trunk-oops – 2010-06-10 19:21:29
这是关于克隆的一切吗?我知道Mercurial与git并不相同,但是您肯定可以创建另一个分支,cherry-pick/rebase(或者hg analog)来获得您想要的并推送它(然后类似地照顾原始分支,但是您需要)。 – Cascabel 2010-06-11 00:09:47