将一个本地分支合并到另一个本地分支

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

  • 分支1:新开发,尚未完全完成
  • Branch2:修复问题,但仍在测试中
  • Branch3:混乱的分支,我不会恢复
在热修复测试完成之前,我想有代码已经在Branch1中可用,这样我就可以继续开发与修复到位。< br / > (但是因为我对git的经验不是很多,我首先开始在第三个分支中使用merge,特别是在我搞砸Branch1或Branch2之前创建的。)

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

git merge feature/Branch1

但这给出了以下错误:

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

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

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

653479 次浏览

首先,结帐到你的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"分支为“大师”*分支:

git checkout master

git merge feature_x

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

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

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

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

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

# 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

完成