我有多个分支,它们都是从主目录分支出来的(每个分支都在一个单独的子目录中)。

分支1:新开发,尚未完全完成 Branch2:修复问题,但仍在测试中 Branch3:混乱的分支,我不会恢复

在热修复测试完成之前,我希望在Branch1中已经有可用的代码,这样我就可以继续开发与修复到位。 (但由于我的经验与git不是那么多,我第一次开始玩与合并在第三分支,特别是创建混乱,在我搞砸了Branch1或Branch2之前)

在我的第三个分支中,我首先尝试了以下内容:

git merge feature/Branch1

但这给出了以下错误:

fatal: 'feature/Branch1' does not point to a commit

接下来,我在我的Branch1中做了一个commit -a,并再次尝试,但它一直给出相同的错误。

我做错了什么?我应该做什么来合并代码从-在这种情况下- Branch1与Branch3?


首先,结帐到你的Branch3:

git checkout Branch3

然后合并Branch1:

git merge Branch1

如果你想要在Branch2上更新Branch1的提交,你可能正在寻找git rebase

git checkout Branch2
git rebase Branch1

这将用Branch1的最新更新来更新你的Branch2。


 git checkout [branchYouWantToReceiveBranch] //checkout branch to receive branch
 git merge [branchYouWantToMergeIntoBranch]

将一个分支合并到另一个分支,例如将"feature_x"分支合并到"master"*分支:

Git checkout master

Git合并feature_x

*注意,原来的分支名称现在通常是main而不是master。根据您的情况选择正确的名称。

当搜索“git将一个分支合并为另一个分支”时,这个页面是几个搜索引擎的第一个结果。然而,最初的问题比标题所暗示的更具体和特殊情况。 它也比主题和搜索表达式更复杂。因此,为了大多数访问者的利益,这是一个最小但解释性的答案。


以防你来到这里是因为你从Github复制了一个分支名称,请注意,远程分支并不自动也是一个本地分支,所以合并将不起作用,并给出“not something we can merge”错误。

在这种情况下,你有两个选择:

git checkout [branchYouWantToMergeInto]
git merge origin/[branchYouWantToMerge]

or

# this creates a local branch
git checkout [branchYouWantToMerge]

git checkout [branchYouWantToMergeInto]
git merge [branchYouWantToMerge]

您可以使用这些命令:

git checkout <the branch you want to merge into>

git merge <the branch you want contents from>

一个稍微有点冗长的方法,但它仍然有效:

分支3:

git fetch origin Branch1
git merge --no-ff origin/Branch1

此时可能会发生合并冲突,请保存对包含合并冲突的文件所做的所有更改

git add -A
git commit -m "Merge"
git push

DONE