DVCS - 多长时间以及何时提交更改(DVCS - How often and when to

2019-07-19 17:40发布

还有另外一个线程在这里StackOverflow上,处理王氏多久提交修改到源代码控制。 我希望把他们在使用DVCS像git的或反复无常的环境。

  1. 多久,什么时候提交?

  2. 你只有当他们建立正确提交更改?

  3. 多久,什么时候把你的改变(或文件拉请求或类似的)?

  4. 你怎么approac开发复杂功能/做一个复杂的重构需要许多地方被触动? 是“私有提交”不会建好吗? 完成后,你把他们也到主存储库或者你前推捆绑所有更改成一个单一的变更?

Answer 1:

这取决于分支(“发展线”)你工作的性质。

与这些DVCS(混帐或水银)的主要优点是容易,您可以:

  • 合并

所以:

1 /多久,什么时候提交?
2 /当他们建立正确你只提交更改?

由于在私有分支必要(例如,如果它编译)许多时间。
如果单元测试通过是一个很好的做法是只提交,但仅应适用于“官方”(如“可以发布或‘推’”)的分支:在你的私有分支,您合并一个gazillon次,如果你需要。
唯一的一点是:做一些合并--interactive重新组织你的私有分支的许多提交,回放他们主要的开发分支,在那里你可以通过一些测试之前。

3 /多久,当你把你的改变(或文件拉请求或类似的)?

出版是另一回事,应以“清”的历史来完成(相干合并,代表其编译并通过一些测试内容)。
您发布的分支应该是一个在历史上是从来没有改写,不断更新。
出版物的步伐取决于远程分支的性质和人口拉那支。 举例来说,如果它是另一支球队,你可以经常推。 如果它是一个全系统的集成测试团队,你会推了不少较少。

4 /你如何处理开发复杂功能/做一个复杂的重构需要许多地方被触动? 是“私有提交”不会建好吗? 完成后,你把他们也到主存储库或者你前推捆绑所有更改成一个单一的变更?

见1和2:补丁先在自己的私人分支,然后重新组织上的官方(公开)的补丁分支的提交。 一个单一的承诺并不总是最好的选择,如果补丁涉及到几个不同的“活动”(或错误修复)。



Answer 2:

我不仅为“交付的变化”,但也帮助我,而我的工作承诺我的DVCS变化(我自己的主题或任务分支)非常,非常频繁,这样我可以用它:像“为什么这工作5分钟前,它不工作了吗?” 如果你犯经常可以只运行一个差异。

此外,技术我觉得非常,非常好,使用它来“自文件refactors”。 让我来解释一下:如果您在做一个主题分支大的重构,然后查看变化作为一个整体(具有改变一个不错的文件集),你可能会迷路。 但是,假设你在每一个“中间步骤”签入和带注释凭证,那么你正在创建某种自己的更改“电影”的帮助来形容你做了什么! 巨大的评审。



Answer 3:

我犯了很多; 增加功能或者甚至重新格式化我的消息来源。

我使用git做我的大部分工作在非共享的分支。 当我添加了算作一个块足够小的变化,我用git rebase收集较小的相关变化成较大的块,并承诺,为主要分支。

这样一来,我把所有的承诺的代码,我可以去向前或向后的优势,但我没有犯我所有的过错,并bactracks到主的历史。



Answer 4:

多久,什么时候提交?

非常频繁。 这可能是不亚于一小时几次,如果改变我做的工作,构成了一个漂亮的补丁。 或者,它可能是每隔几个小时,这取决于我是否花费更长的调试东西,或有风险的变化进行试验。

你只有当他们建立正确提交更改?

是的,几乎总是。 我想不出有任何理由说得对,没有建立正确的代码来检查。 有很多你可能会在代码检查原因,不能正常运行 (在一个分支)虽然。

多久,什么时候把你的改变(或文件拉请求或类似的)?

通常情况下,只有当一个功能齐全,并准备进行集成测试。 这意味着它已经通过单元测试等相关测试,并且代码/补丁是不够干净,我认为它准备好接受审核。

你怎么approac开发复杂功能/做一个复杂的重构需要许多地方被触动? 是“私有提交”不会建好吗? 完成后,你把他们也到主存储库或者你前推捆绑所有更改成一个单一的变更?

我想创建使用该功能的命名分支(这将对整个设计文档和问题跟踪系统可跟踪性)。 不建立承诺只会真正在私有分支作为中间步骤确定,但仍是例外。 目前,我没有变基和整个特性分支合并为一个单一的变更,虽然这是我期待在未来做的事情。 在适当的时候测试全部通过只推变化。



Answer 5:

我按照这样的流程
替代文字http://img121.imageshack.us/img121/3272/versioncontrolsysbestpr.png

( 这里是原始图像的URL )

我想这说漂亮的一切。 基本上,我会做一个检查,实施全方位的工作用例/用户故事后(取决于你的软件过程)。 主要重要的是你签的东西,在他们编制工作的意义。 千万不要破坏构建 !
做一个承诺每一个用户故事/用例有你有以前的版本,并撤消更改的更好的跟踪是非常容易的后发优势。



文章来源: DVCS - How often and when to commit changes
标签: dvcs commit