Git 在 maual update/commit 之上自动合并来自将要合并的同一分支

Git automatic merge on top of maual update/commit from the same branch which is going to be merged

我有一个 branch A,我想与 branch B 合并(已更新),有一些 code/files 从 [=13= 手动提交到 branch A ].现在我想自动合并从分支 B 到 A 的完整变化。我有以下 queries/doubts -

  1. 当我尝试进行自动合并时,git 显示新的 code/files addition/update,这些新的 code/files addition/update 之前已经作为手册 update/commit 的一部分存在于 branch A 中完成。
  2. 如果继续合并它们可以吗,会不会有code/file重复?
  3. 或者我应该进行手动合并吗?但是有很多变化

如果不清楚,请给我机会解释更多。任何帮助将不胜感激。

这可能会很好,Git 不会产生重复代码。

当您进行合并时,Git 查看两个头(您正在合并的分支),以及合并基础,这通常是最近的共同提交。如果一个文件的两个头都具有完全相同的内容,那么合并是微不足道的,并且 Git 选择那个结果。如果他们不这样做,它会尝试合并来自每一方的更改。

执行此操作时,如果更改是针对两个单独的代码区域,则合并会成功,因为 Git 将包括来自每一方的更改。如果更改是针对同一区域的,但它们是相同的更改,那么 Git 只需使用相同的部分(一次)并将其用于结果中。如果您对同一区域有不同的更改,那么 Git 将会发生冲突,您将不得不手动解决问题。

如果合并成功且没有冲突,那么 Git 可能会做正确的事情,你会得到一个理智的结果,尽管有时合并确实会导致奇怪的行为,因为 Git 只运行在线并且本质上并不了解代码的结构。通常您可以通过构建和测试您的代码来检测到这一点,并且在典型的实践中,意外行为很少发生。 Git 如果双方有类似的更改,则不会重复代码;在最坏的情况下,它会发生冲突并让您弄清楚该怎么做。

如果合并有冲突,您将不得不手动解决它们。如果您使用拉取请求通过 GitHub 进行合并,它会告诉您拉取请求中是否存在冲突。如果您在命令行上执行它们,那么您只需要尝试看看它是如何工作的。