2011-08-18 58 views
4

这可能不是一个特定于git的问题,但它出现在git的上下文中。这个想法可能会更广泛地适用于其他vcs。使用dvcs/git,单个提交首选多个小型主题提交?

我正在开发一个小型项目,目前我是唯一的开发人员。我习惯了使用git,所以我想知道最佳实践。当我实现新的特性/功能时,我发现我一次处理多个文件,它们的示例和文档,这样我的git状态可能会报告15个已更改的文件。但是这些文件可能涉及项目的3个不同部分。

将它们分成3个独立的部分,将相关文件保存在一起,这样我可以稍后返回并更轻松地找到这些提交。或者用一个适当的信息一次完成所有的事情都很容易?

回答

4

一个标准,可以帮助你做出正确的“量”的承诺是git bisectgit blame:将大在尝试git bisect以检测错误时承诺会造成滋扰?

这就是描述“Understanding the Git Workflow”的博客文章,当它描述了“检查站提交”(太少提交捕获的代码在不稳定的状态),或者“no-ff提交”(它代表了太多的修改在一个捆绑在一起大提交)。

7

它最好使提交原子。也就是说,一个提交代表了所涉及项目的一个逻辑变化,并且可以独立运行。

这使得

  1. 易典检查
  2. git bisect工作正常
2

这可能很困难,并且关于“最佳工作流程”有很多不同的观点。如果可能的话,最好是

  1. 单独的关注 - 使用一些短期的独立分支,每个关注一个。在最终合并和发布到更高级的分支之前,您总是可以压缩您的提交序列。
  2. 经常提交 - 更小的步骤可以更容易地找到发生错误的位置和原因,并对齐合并。它可以在工作后再压扁。
  3. 使用暂存区域和git stash来分区您在每次提交中放置的工作。
  4. 不要太担心小错误。只有当你向后走才会发生远见。