合并后git分支会不同吗?
我用git和github做了一些工作,但得到了意想不到的结果。在对一个分支进行了数月的工作后,我将其合并回主节点,但在github上,比较告诉我分支是相同的,而文件实际上是不同的。这让我发疯,所以我的问题是:合并后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
在步骤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):
正如您在这里看到的,branchB
根本没有改变,而branchA
现在指的是新的合并提交
在合并提交中,文件的状态可以是任何形式,但是运行
git merge
通常会尝试包含来自两个分支的更改的组合,因为它们是分开的。这是一个技巧问题吗?现在A有A+B的变化,而B只有B,对吗?这不是一个诡计问题,但我想这不是一个非常聪明的问题。。。如果我将B合并到A中,但我想继续处理B,同时处理从其他提交收到的提交A?
A
↑↖
o B
↑ ↑
o o
↑↗
o
↑
o