为什么我们必须在Git中解决冲突后立即执行常规提交?

为什么我们必须在Git中解决冲突后立即执行常规提交?,git,merge,conflict,Git,Merge,Conflict,为什么我们必须在Git中解决冲突后立即执行常规提交 如果我在冲突解决后修改一些其他文件,然后将它们一起提交,会怎么样 区别是什么?没有“区别” 如果合并以一个或多个冲突结束,它将尽可能多地合并,然后停止,通知您这些冲突 一旦解决了这些冲突,您的任务就是提交最终的合并提交 原因是合并冲突解决步骤是通过调用其他git命令、外部冲突解决工具、手动和可视化检查文件来手动执行的,等等,这不是一个交互过程,因此git不会在正常提交之前等待您完成冲突的解决。它只是说“我在这里停下来,等你完成后再承诺” 如果除

为什么我们必须在Git中解决冲突后立即执行常规提交

如果我在冲突解决后修改一些其他文件,然后将它们一起提交,会怎么样

区别是什么?

没有“区别”

如果合并以一个或多个冲突结束,它将尽可能多地合并,然后停止,通知您这些冲突

一旦解决了这些冲突,您的任务就是提交最终的合并提交

原因是合并冲突解决步骤是通过调用其他git命令、外部冲突解决工具、手动和可视化检查文件来手动执行的,等等,这不是一个交互过程,因此git不会在正常提交之前等待您完成冲突的解决。它只是说“我在这里停下来,等你完成后再承诺”

如果除了解决这些冲突之外,您还进一步更改了磁盘上的文件,并添加了这些更改,然后提交,那么它将一起提交所有内容。这没什么特别的

合并提交与任何其他常规提交类似,只是它(通常)有两个父级而不是一个父级,不同的是,它是一个具有所有提示的完全常规提交。git执行的合并操作准备了提交引入的所有更改这一事实只是一个细节,您可以通过转移正确的更改并告诉git与两个父级提交来100%手动构建合并提交

因此,您进一步修改文件与不修改文件的区别在于合并将包含更多更改,而只包含git+冲突解决方案添加的更改

不多不少。

没有“区别”

如果合并以一个或多个冲突结束,它将尽可能多地合并,然后停止,通知您这些冲突

一旦解决了这些冲突,您的任务就是提交最终的合并提交

原因是合并冲突解决步骤是通过调用其他git命令、外部冲突解决工具、手动和可视化检查文件来手动执行的,等等,这不是一个交互过程,因此git不会在正常提交之前等待您完成冲突的解决。它只是说“我在这里停下来,等你完成后再承诺”

如果除了解决这些冲突之外,您还进一步更改了磁盘上的文件,并添加了这些更改,然后提交,那么它将一起提交所有内容。这没什么特别的

合并提交与任何其他常规提交类似,只是它(通常)有两个父级而不是一个父级,不同的是,它是一个具有所有提示的完全常规提交。git执行的合并操作准备了提交引入的所有更改这一事实只是一个细节,您可以通过转移正确的更改并告诉git与两个父级提交来100%手动构建合并提交

因此,进一步修改文件与不修改文件的区别在于,合并将包含更多的更改,而不仅仅是git+冲突解决添加的更改


没有更多,也没有更少。

您必须执行提交,因为合并的最后一步是(通常在幕后)提交,当发生冲突时,git会退出该步骤。因此,我们没有为这种情况创建新的命令或子命令,而是决定让您在整理索引后完成最后一步

您可以进行冲突解决方案以外的更改。有时,这对于正确解决冲突是必要的。git不可能“知道”您所做的更改是否真的需要用于冲突解决。我想它可以检测到不在冲突标记内的更改并发出警告,但在某些冲突场景中,硬停止会阻止合法解决,因此似乎不值得为警告付出额外的努力。因此,开发者被信任去做他们应该做的事情

此外,您知道吗,您可以明确地告诉git不要提交合并,这样您就可以在提交合并结果之前编辑合并结果(即使没有冲突)?你也许不应该,但你可以

请注意,在合并中进行并非实际冲突解决的更改可能会产生负面影响,因为这些更改在合并提交中有些“隐藏”,因此您必须知道如何查找它们


但是git是一个强大的工具,通常它希望您知道如何使用这种能力。在提交过程中,您可以将所需内容提交给您所需的父级,这是该功能的一部分。

您必须执行提交,因为合并的最后一步是提交(通常是幕后提交),当发生冲突时,git会将该步退出。因此,我们没有为这种情况创建新的命令或子命令,而是决定让您在整理索引后完成最后一步

您可以进行冲突解决方案以外的更改。有时,这对于正确解决冲突是必要的。git不可能“知道”您所做的更改是否真的需要用于冲突解决。我想它可以检测到不在冲突标记内的更改并发出警告,但在某些冲突场景中,硬停止会阻止合法解决,因此似乎不值得为警告付出额外的努力。因此,开发者被信任去做他们应该做的事情

此外,您知道吗,您可以明确地告诉git不要提交合并,这样您就可以在提交合并结果之前编辑合并结果(即使没有冲突)?你可能