Git中的变更集是什么?

22
Git中的更改集是什么?我一直听到这个术语,但似乎在网上找不到答案,而维基百科也很模糊。如果您通过git存储库一次提交5个文件,并键入git log并查看该5个文件的单个提交,则称整个更改为更改集吗?
commit 01304a265f5d8f9bfd6eb64d3390846adc61db75
i.e.:Author: Some guy <someguy@hotmail.com>
Date:   Thu Jul 28 18:28:07 2016 -0400

First commit

这整个东西会是一个变更集(changeset)吗?


1
在 Git 中没有这样的概念。如果你看到有人使用它,请问他们它的含义是什么。 - hobbs
2
实际上,它是一个概念,但更多地用于版本控制。- https://en.wikipedia.org/wiki/Changeset 而且,它与提交相同。 - gran_profaci
如果您将其作为答案编写,我将接受@gran_profaci作为接受的答案。 - developer098
6
请不要删除这个问题。我自己在某个IDE(如果我记得正确的话是PHPStorm)中遇到了“changeset”术语。但是IDE的“changeset”正好符合我的需求,所以我让它保持不变。现在,我去了Bitbucket的API文档,但无法找到任何“commits”的方法。别误解我,我是通过Git来接触版本控制的,所以我之前没有听说过“changesets”。此外,也许有一些细微的区别?也可能没有...当周围的人都知道这个问题而没有人提出时,想要在谷歌上查找某些东西确实很困难;-) - pilat
1个回答

11

正如其他人所提到的,变更集本质上是一个不可分割的修改。不可分割意味着变更集是在代码库中正在进行的修改堆栈中的一个单一值。例如,如果您查看一个提交,您可以检查哪些文件被修改了,代码库之前的状态是什么,在修改之后又是什么,这符合变更集的概念。


12
值得强调的是,Git不会“存储”变更集。相反,Git会通过比较某个提交与其父提交来“计算”变更集。这对大多数提交有效,但对于合并提交(至少有两个父提交,因此必须首先选择一个),以及根提交(没有父提交)无效。 - torek
1
谢谢,这很有帮助。我在提交文档的PR后找到了这个页面,我认为这将是一个不错的第一个“真正”的PR。但是我收到了来自构建机器人的消息:“⚠️未找到更改集。合并此PR不会导致任何软件包的版本增加。如果这些更改不应导致新版本,则可以继续进行。如果这些更改应导致版本增加,则需要添加更改集。当向此PR添加更改集时,您将看到此PR包括更改集的软件包以及相关的semver类型。” 不确定它的含义,文档没有更新。 - AveryFreeman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接