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

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

【问题讨论】:

  • 当然...考虑一下“项目中的变化”,您可以共享并始终转移到不同的分支。如果您“按文件”执行此操作,则单个修订可能不一致。
  • 不要只遵循别人的最佳做法。做一些研究并提出你自己的。

标签: git version-control pycharm commit


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • @nicolas-fonteyne,请注意,Git 甚至没有显式跟踪文件重命名,实际上它在提交中记住文件名的唯一原因是因为它适用于将文件系统作为在他们管理的持久存储上组织数据的主要方式 ;-) 因此,正如 Bruno 所说,在使用任何 VCS 时,请考虑 changes 和 changesets,而不是他们的文件触摸。
      猜你喜欢
      • 2015-01-08
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      相关资源
      最近更新 更多