Git 将更改提交到存储库的好标准是什么?
我目前正在使用git管理几个项目,然而,最近有一个问题困扰着我:将修改提交到主分支和辅助分支的好基调是什么?它应该是“编译时提交”、“工作时提交”还是其他?谢谢。退一步说,我尝试在短时间内完成问题/错误/功能。如果需要一天以上的时间才能到达一个好的停止点,那么任务就太大了 也就是说,我认为最佳实践是在代码编译并经过充分测试后提交更改(理想情况下是使用随代码更改提交的单元或集成测试)Git 将更改提交到存储库的好标准是什么?,git,version-control,commit,Git,Version Control,Commit,我目前正在使用git管理几个项目,然而,最近有一个问题困扰着我:将修改提交到主分支和辅助分支的好基调是什么?它应该是“编译时提交”、“工作时提交”还是其他?谢谢。退一步说,我尝试在短时间内完成问题/错误/功能。如果需要一天以上的时间才能到达一个好的停止点,那么任务就太大了 也就是说,我认为最佳实践是在代码编译并经过充分测试后提交更改(理想情况下是使用随代码更改提交的单元或集成测试) 如果编译+功能正确+经过良好测试==“工作时提交”,那么这似乎是合适的规则。如果您使用的是票证管理系统,我会说任务
如果编译+功能正确+经过良好测试==“工作时提交”,那么这似乎是合适的规则。如果您使用的是票证管理系统,我会说任务修复时提交。我自己也会选择“尽早提交,经常提交”。如果您有一个自动签出和构建正在进行,这显然是行不通的。在它工作时提交。在我的例子中,这意味着:自动执行冒烟测试,运行它并提交
注意:我只是在提交之前自动/运行冒烟测试。回归测试留给了持续集成。这真的取决于,这是您个人的回购协议还是许多开发人员共享的回购协议?你在这个项目中有多远 就我个人而言,当我完成了一个方面的工作,并且所有的东西都编译好了,我就向我的subversion存储库作出承诺。它不必是完整的,只是不必破碎。我宁愿一开始就不把东西弄坏 写了一半的代码可以签入,但只能在我的个人分支中签入,通常带有关于我当时正在做什么以及还需要做什么的注释。因为我使用Subversion,这是我的个人回购协议,所以我使用它主要是为了能够离开我的桌面,回到我离开笔记本电脑的地方 通常,每次提交一个bug/问题/特性是不错的,但可能不适合您的开发风格。如果这是一个更完整的项目,它可能会解决,因为提交意味着您正在从某个地方的列表中划掉项目,这意味着现在又完成了一个项目
其他的事情要考虑,什么是重要的变化,它需要检查?例如,我昨晚签入的代码显著更改了一个内部API,这意味着我必须在提交消息和文档中记录更改。同时,我也修改了一些评论,以修正打字错误。这会在提交消息上得到一个小的子注释,但我认为这不是一个足够大的问题。保存更改和发布更改之间存在差异
提交是保存更改。虽然我不建议使用计时器,但我建议您更像是保存一个文件,而不是发布一个版本。当你担心你可能需要回来,但又担心很难回到你现在的位置时,就去做吧但是,在发布提交之前,请重写提交(例如git-rebase-i origin/master)。从你所做的混乱中找到意义,创建一组可理解的、干净的提交和良好的提交消息,并确保每一个都通过了可能的质量检查。然后发布它。一次只提交一个类型的更改 对于每个项目,“类型”的含义是不同的,但一些流行的例子包括“外观更改”与“功能更改”以及“重构”与“添加新内容”。这使得查看日志时更容易跟踪更改,也更容易恢复到修订 一些基本的事情:
提交您不想再次编写的任何代码:)您的提交不一定会破坏某些东西。如果您正确地应用开闭原则,很好地布局类,等等,那么您可以轻松地添加功能而不破坏现有内容。