git merge之后源和目标分支会发生什么?

Spi*_*ion 11 git

当我运行git checkout branch1然后git merge branch2合并两个分支时,看起来像branch2只是覆盖branch1.这应该发生吗?

编辑:

合并前

  • branch1 = readme.txt(Hello World!)
  • branch2 = readme.txt(Hello 2!)

合并后

  • branch1 = readme.txt(Hello 2!)

tbh,我不确定合并在技术上应该做什么.

Wil*_*ill 19

当合并一个分支到另一个git的合并将应用从分支从分支被合并所有提交合并到,因为这两个分歧.您可以将其视为形成一个新头,其中包含来自两个分支的最新状态.如果您更改了分支中的文件并将其合并回其父级,则更改将应用​​于该分支的当前状态之上.如果两个文件在同一个地方都发生了变化,那么合并可能无法解决这个问题,您将不得不进行干预.通常你最终会得到两个分支机构的最新工作.

在您的示例中,您所做的更改branch2已合并到其中branch1.这似乎是将文本更改为"Hello 2!".

git-merge联机帮助页有这样的说法:

假设存在以下历史记录,并且当前分支是"master":

          A---B---C topic
         /
    D---E---F---G master
Run Code Online (Sandbox Code Playgroud)

然后"git merge topic"将重放在主题分支上所做的更改,因为它从master(即E)分离到master上的当前提交(C),并将结果记录在新的commit中以及两个父提交和来自用户的描述更改的日志消息.

          A---B---C topic
         /         \
    D---E---F---G---H master
Run Code Online (Sandbox Code Playgroud)

简而言之,这是合并的正确操作.