Git 为什么我最终会有一堆合并提交?
我们使用发布分支、开发分支和发布分支 我们的问题分支只包含该问题的提交 一旦开发人员完成了一个问题并提交了一个请求,他们就会合并到dev中,以保持更新 在测试各个问题分支之后,这些分支将逐个合并到发布中 此时,我们的变更日志将在发布分支上更新,然后将其合并回dev 最终的结果是,我在dev中出现了一堆合并提交,所以看起来dev在发布之前是一堆提交,而实际上应该是所有提交。例如: 在这一点上,如果我将dev合并回发行版中,这表明它们不再相互领先/落后,但实际上并没有引入新代码。这只是一堆合并提交 我们做错了什么导致了这种情况?我们将非常感谢您提供有关如何改进此程序并避免这些问题的任何信息。谢谢 你没有做任何“错误”的事情;git只是准确地记录了您告诉它的内容:Git 为什么我最终会有一堆合并提交?,git,Git,我们使用发布分支、开发分支和发布分支 我们的问题分支只包含该问题的提交 一旦开发人员完成了一个问题并提交了一个请求,他们就会合并到dev中,以保持更新 在测试各个问题分支之后,这些分支将逐个合并到发布中 此时,我们的变更日志将在发布分支上更新,然后将其合并回dev 最终的结果是,我在dev中出现了一堆合并提交,所以看起来dev在发布之前是一堆提交,而实际上应该是所有提交。例如: 在这一点上,如果我将dev合并回发行版中,这表明它们不再相互领先/落后,但实际上并没有引入新代码。这只是一堆合并提交
- git中的提交是一个不可变的对象,指定其内容和元数据。关键的是,这包括提交父级的哈希(提交ID)
- 当您将两个分支合并在一起时,git将创建一个提交,其内容是合并的结果,其元数据包括两个父提交的ID
- 如果以不同的顺序合并相同的更改,甚至只是在不同的时间合并,结果内容可能相同,但元数据将不同
- 当git比较两个分支时,它首先查看在一个分支的历史记录中存在哪些提交(使用唯一哈希),而在另一个分支的历史记录中不存在。然后,它查看对这些提交中的内容所做的更改,并尝试重新应用它