我正在使用git来管理一个C++项目。当我在项目中工作时,我发现当更改与许多地方相关的事情时,很难将更改组织到提交中。
例如,我可能会更改.h文件中的类接口,这将影响相应的.cpp文件,也会影响使用它的其他文件。我不确定将所有东西放在一个大承诺中是否合理。
直观地说,我认为提交应该是模块化的,每个提交都对应一个功能更新/更改,这样合作者就可以相应地挑选东西。但似乎有时不可避免地要包含大量文件和更改,以使功能更改真正起作用。
搜索没有给我任何好的建议或提示。因此,我想知道是否有人可以在提交时给我一些最佳实践。
PS。我使用git已经有一段时间了,我知道如何以交互方式添加/rebase/split/amend/...我问的是哲学部分。
更新:感谢所有的建议。也许这应该从实践中学到。我将把这个问题保留一段时间,看看是否有更多的建议。
发布于 2012-07-27 01:25:07
免责声明:我也在试图弄清楚提交应该是什么,以及最终的历史应该是什么样子。然而,我想分享我在自己的研究过程中遇到的一些资源。
首先,Linux Kernel项目在Merge Strategies上有一个很棒的页面,可以让您的代码上游合并。他们谈到了进行一口大小的提交;在你想要的实际添加之前进行一个或多个重构提交(当然,重构应该是为了让你的功能更干净;)以及其他事情。
我另一个最喜欢的页面是赛斯·罗伯逊写的Git Best Practices。这不仅是一个关于使用git的最佳实践的页面,而且也是一个巨大的资源,它包含了大量关于各种git主题的信息,使得googling搜索更深入的信息变得微不足道。
https://stackoverflow.com/questions/6543913
复制相似问题