将丑陋的代码提交给git存储库的惯例是什么?

时间:2012-03-08 04:39:16

标签: git commit

我目前对git的使用可以被描述为“早期和经常提交”。我当然试图使每个提交成为一个逻辑单元(如good commit criteria中所述)。但是,我经常迭代设计并希望保存每个阶段。如果我想出一些丑陋而又实用的东西,我想在清理之前提交检查点。

您对此事的体验是什么 - 它是否会给您的团队带来问题?超越丑陋的代码 - 只要你不修复直到修复错误,本地提交破坏的代码是否可以接受?

3 个答案:

答案 0 :(得分:7)

最常见的惯例是使用存储在您的存储库中的功能分支(或一组分支) - 也许可以在某个地方在线,如GitHub或Gitorious。

您可以在合理的有罪不罚的情况下重新定义和重写该功能分支,直到您最终准备好以任何项目特定的方式提交上游。这使您可以构建和共享正在进行中的代码,而不会过于头痛。

一路上,构建一系列提交,然后使用交互式rebase(或其他重写工具)将这些提交转换为另一组干净的逻辑提交,这是从检查点及时移动到检查点的好方法 - 如果你经常犯下并且在非常小的部分中,那么效果最好。

答案 1 :(得分:0)

  

是否会给你的团队带来问题?

不适合我/我的团队。只要你没有推送破坏的代码,它就不会影响你的队友 - 至少,直到你去寻找过去的提交。

  

只要你不推,直到错误得到解决,本地提交损坏的代码是否可以接受?

我是这么认为的,但我也认为你会发现这个问题的答案是非常主观的。

如果您真的担心推送可能包含中间损坏提交的提交,Squash my last X commits together using Git

你可以在git commit frequency找到更多的建议/意见,其中一些比我自己更严格,但并非没有价值:

  
      
  • Git项目本身的准则是每个"逻辑上单独的变更集一个提交。"
      (Scott Chacon
  •   
  • 此外,您还希望每个评分版本都能正常工作(这有助于找到错误的二分法)(Jakub Narębski
  •   
  • 如果您拥有该项目,请随时提交。如果您正在编辑其他人的项目,请在修补程序完成时提交   (Tyler Gillies
  •   

列表继续......

答案 2 :(得分:0)

结帐的另一个选择是:

git stash

此链接有一个很好的摘要:http://csurs.csr.uky.edu/cgi-bin/man/man2html?1+git-stash