使用DVCS进行每次保存后提交是否有意义?

blo*_*ead 2 git mercurial dvcs

我知道在提交DVCS的频率之前已经问过这个问题.所有答案都有一个共同点 - 尽可能经常.但它们通常是在完成一个思想,一个用户故事,获得编译代码或通过测试之后.我在想,鉴于DVCS为您提供了自己的存储库,提交非常便宜,在每次更改文件后提交都没有意义吗?毕竟,这就是NetBeans中发生的事情,你得到一个很好的免费"时间机器",甚至没有要求它.如果不是每次改变,那么至少每次保存或编译.

这是否有意义,或者我对DVCS有错误的想法.我的感觉是,这不是大多数人使用DVCS的工作流程.

Jak*_*ski 5

您当然应该尽量避免提交不起作用的代码,甚至可能无法编译的代码(我认为即使您git rebase --interactive在推送/发布代码之前清理历史记录)。git bisect否则,发现错误的价值将大大降低。

您可以使用git commit+ git commit --amend(或者例如,stg refresh如果您使用StGIT补丁管理界面1)来快照您的代码,而无需引入非工作核心的提交。

经验法则是,commit 应该做一件事,做得好,做得彻底


脚注

1.或其他补丁管理界面的等效项,例如Git 的Guilt或随 Mercurial 分发的Mercurial 队列(mq) 扩展,这是 Guilt 的灵感来源。


Dan*_*ach 5

我为和的用户使用了很棒的git-wip工具.它每次保存时都会进行提交,但它会在side分支中进行提交.自动提交不会成为主分支上的历史记录的一部分,因此通常不会传播到其他存储库. gitemacs

它让我们可以轻松地回顾过去以前的保存,但不会因为非工作提交而使我的常规分支混乱.两全其美.