合并后git分支会不同吗?

合并后git分支会不同吗?,git,github,merge,branch,git-merge,Git,Github,Merge,Branch,Git Merge,我用git和github做了一些工作,但得到了意想不到的结果。在对一个分支进行了数月的工作后,我将其合并回主节点,但在github上,比较告诉我分支是相同的,而文件实际上是不同的。这让我发疯,所以我的问题是: 分支B从分支A分叉 在分支A上完成并推送工作(提交、合并、重置等) 在分支B上完成并推送工作(提交、合并、重置等) 把B合并成A 合并后,两个分支都会被修改? 在步骤4之后,分支A和B文件是否可能不相同? 如果是,是什么行动使他们有所不同 感谢您将B合并到A中时,这只会修改分支A。它会将B

我用git和github做了一些工作,但得到了意想不到的结果。在对一个分支进行了数月的工作后,我将其合并回主节点,但在github上,比较告诉我分支是相同的,而文件实际上是不同的。这让我发疯,所以我的问题是:

  • 分支B从分支A分叉
  • 在分支A上完成并推送工作(提交、合并、重置等)
  • 在分支B上完成并推送工作(提交、合并、重置等)
  • 把B合并成A
  • 合并后,两个分支都会被修改?
    在步骤4之后,分支A和B文件是否可能不相同?
    如果是,是什么行动使他们有所不同


    感谢您将B合并到A中时,这只会修改分支A。它会将B中的任何更改(因为分支)应用到A中。合并后分支B保持不变。这是预期的行为


    通常,如果您已经完成了个人“功能分支”的工作,并将其合并到主分支或共享分支中,您现在可以删除该功能分支。

    在git中,分支实际上只是对单个提交的引用。两个分支可以引用相同的提交,这将使它们相同,但是在您的情况下,它们必须引用相同的提交

    假设这是示例中步骤3之后两个分支的当前状态。“A”和“B”是针对A和B进行标记的提交

    A B
    ↑ ↑
    o o
    ↑↗
    o
    ↑
    o
    
    到目前为止,此图中的每个提交都有一个父级。每次在分支中创建新提交时,都会将新提交作为当前提交的子级进行,并且分支会更改为引用此新提交

    在git中进行合并时,您将创建一个合并提交,这是一个具有多个父级的特殊提交,每个父级都有不同的更改

    运行
    git merge
    时,将创建此合并提交,并且只有当前签出的分支将向前移动以引用此新提交。下面是在签出分支
    A
    时运行
    git merge B
    时发生的情况(示例中的步骤4):

    正如您在这里看到的,branch
    B
    根本没有改变,而branch
    A
    现在指的是新的合并提交


    在合并提交中,文件的状态可以是任何形式,但是运行
    git merge
    通常会尝试包含来自两个分支的更改的组合,因为它们是分开的。

    这是一个技巧问题吗?现在A有A+B的变化,而B只有B,对吗?这不是一个诡计问题,但我想这不是一个非常聪明的问题。。。如果我将B合并到A中,但我想继续处理B,同时处理从其他提交收到的提交A?
    A
    ↑↖
    o B
    ↑ ↑
    o o
    ↑↗
    o
    ↑
    o