git commit最佳实践

我使用git来管理一个C项目。当我在项目上工作时,我发现很难将更改组织到提交时,改变与许多地方相关的事情。

例如,我可以更改.h文件中的类接口,这将影响相应的.cpp文件,以及使用它的其他文件。我不知道把所有的东西放到一个大的提交是否合理。

直觉上,我认为提交应该是模块化的,每个对应一个功能更新/更改,以便协作者可以相应地选择事情。但似乎有时,不可避免地包括大量的文件和更改,使功能的变化实际工作。

搜索没有给我任何好的建议或提示。因此,我想知道是否有人可以给我提供一些最佳做法。

PS。我一直在使用git一段时间,我知道如何交互式添加/ rebase / split / amend / …我要求的是PHILOSOPHY部分。

更新:感谢所有的建议。也许这应该从练习中学习。我会保持问题打开一段时间,看看是否有更多的建议。

我倾向于提交,因为你建议:提交是一个逻辑连接的更改集。我的提交可以是从一个单行到所有文件的更改(例如在源文件中添加/更改版权声明)。改变的原因不一定是我正在实施的一个完整的任务,但它通常是一个里程碑的任务。

如果我修改了一些与我当前的提交无关的东西,我倾向于做一个交互式的添加来分离出不相关的变化,即使它是一个空白整理。

我发现,提交只简单地转储工作状态到存储库使它们很少有用:我不能backport一个bug修复到早期版本,或包括一个实用程序功能在另一个分支容易,如果提交了所有地方。

这种方法的一个替代方法是在特征分支内部使用许多小提交,并且一旦整个特征完成,就进行大量历史重写以将提交整理成逻辑结构。但我认为这种方法是一个时间浪费。

http://stackoverflow.com/questions/6543913/git-commit-best-practices

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:git commit最佳实践