【问题标题】:GIT branch not mergingGIT分支未合并
【发布时间】:2021-06-07 22:45:15
【问题描述】:

我有三个分支:

*branch_a
main
master

绑定到远程存储库。我目前在 branch_a 分支上,它与远程主分支不同:origin/main。也就是说,远程 origin/main 有一个名为 'file.txt' 的文件,其中字母 'A' 作为唯一字符,而我的本地分支 branch_a 具有相同的文件,'file.tx' 和字母 'B ' 作为唯一的字符。在 branch_a 中签出时,我可以看到这些差异;使用:

git diff origin/main

但是,当我尝试合并这些更改时,即从远程源/主合并,我得到:

Already up to date.

我不确定这些更改为什么没有显示出来,也没有从远程源/主分支合并到我的本地分支 branch_a。

【问题讨论】:

  • 这可能意味着您更改内容的修订版是本地分支上的修订版过去 origin/main中的最后一个修订版......所以,你不能从该分支中​​提取任何内容,因为您了解其内容的最新状态......或者更确切地说,历史(您的分支中已经拥有该分支中的所有内容)。

标签: git main


【解决方案1】:

您没有提供足够的信息来了解原因,但很容易给出一个原因。假设你这样做了:

  1. main 上,使用内容 A 创建文件 file.txt

  2. 添加并提交和推送。

  3. 创建分支branch_a 并切换到它。

  4. 编辑文件 file.txt 使其具有内容 B.

  5. 添加并提交。

现在您将看到刚才描述的相同现象。 origin/mainbranch_a 显示 file.txt 的差异,但您不能将 origin/main 合并到 branch_a。这是因为branch_a 领先于origin/main origin/main 加上一个额外的提交,这就是全部。没有要合并的内容,因为 branch_a 已经“拥有”所有与 origin/main 相同的提交。

但是现在这样做:

  1. 切换回main

  2. 创建另一个文件,添加、提交和推送。

  3. 切换回branch_a 并再次尝试合并。

现在您可以合并了,因为有一些事情要做

【讨论】:

    【解决方案2】:

    你在尝试吗:

    git add file.txt
    git commit -m "your comment here"
    git push 
    

    【讨论】: