一次提交多个文件是一种好习惯吗?

Posted

技术标签:

【中文标题】一次提交多个文件是一种好习惯吗?【英文标题】:Is it good practice to commit multiple files at once? 【发布时间】:2019-11-07 09:42:38 【问题描述】:

我是 PyCharm 的新用户,最近开始使用它的 VCS(版本控制系统)工具。每当我想提交对项目所做的更改时,VCS 默认会打开一个窗口,其中包含我对该项目中所有文件所做的所有更改,并建议我在一次提交中提交所有这些更改。这是一个好习惯吗?

【问题讨论】:

请阅读 => github.com/trein/dev-best-practices/wiki/… 当然...考虑一下“项目中的变化”,您可以共享并始终转移到不同的分支。如果您“按文件”执行此操作,则单个修订可能不一致。 不要只遵循别人的最佳做法。做一些研究并提出你自己的。 【参考方案1】:

是的,完全没问题。当您查看其他存储库时,即GitHub,您会发现他们也这样做了。一个很好的例子是CPython repository,其中提交有时会更改ten files。

【讨论】:

【参考方案2】:

我的建议如下:无论提交在文件之间的分布如何,您的每个提交都应该呈现代码整体理念的新变化。例如,如果您要更改程序中的某个小功能,并且这样做会导致出于相同目的更改多个文件,那么我会将其保留在同一个提交下。如果您要在同一个文件中添加多个功能,请将它们保存为单独的提交。

我不太担心您在提交中影响的文件数量,而更多地担心代码的整体功能/想法。

【讨论】:

【参考方案3】:

提交应该是“原子的”,即它应该包含一组旨在协同工作的相关更改。有多少文件是无关紧要的。你不应该做的是

1/ 一起提交不相关的更改(即一组更改实现一个新功能和一个单一的更改修复一个错误) - 因为然后你将错误修复单独(chery-pick)应用到另一个分支,

2/ 仅提交部分相关更改(即您更改了给定文件中函数的原型,但没有修复对该函数的所有调用)导致代码库损坏。

【讨论】:

@nicolas-fonteyne,请注意,Git 甚至没有显式跟踪文件重命名,实际上它在提交中记住文件名的唯一原因是因为它适用于将文件系统作为在他们管理的持久存储上组织数据的主要方式 ;-) 因此,正如 Bruno 所说,在使用任何 VCS 时,请考虑 changeschangesets,而不是他们的文件触摸。

以上是关于一次提交多个文件是一种好习惯吗?的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用资源文件编写器是一种好习惯吗

大量使用静态成员变量是一种好习惯吗? [复制]

在 AngularJS 中结合 CREATE 和 EDIT 控制器是一种好习惯吗?

在整个应用程序中使用此 NSManagedObjectContext 是一种好习惯吗

C# 中的重载运算符实际上是一种好习惯吗? [关闭]

将对象文字用作哈希表是一种好习惯吗?