我有多个分支从主服务器分支(每个分支在一个单独的子目录中)。
在完成修补程序的测试之前,我想在Branch1中已经提供代码,因此我可以继续开发修复程序。
(但是因为我对git的经验并不是那么多,所以我第一次开始在第三个分支中进行合并,尤其是在我弄乱了Branch1或Branch2之前就已经陷入困境)
在我的第3个分支中,我首先尝试了以下内容:
git merge feature/Branch1
但这会产生以下错误:
fatal: 'feature/Branch1' does not point to a commit
我接下来在我的Branch1中做了一次提交-a并再次尝试,但它一直给出同样的错误。
我做错了什么?我该怎么做才能合并代码 - 在这种情况下 - Branch1与Branch3?
答案 0 :(得分:138)
首先,结帐到您的Branch3:
git checkout Branch3
然后合并Branch1:
git merge Branch1
如果你想在Branch2上更新Branch1的提交,你可能正在寻找git rebase
git checkout Branch2
git rebase Branch1
这将使用Branch1的最新更新更新Branch2。
答案 1 :(得分:18)
将一个分支合并到另一个分支,例如将“feature_x”分支合并到“master”分支:
git checkout master
git merge feature_x
这个页面是几个搜索引擎在寻找“git merge one branch into another”时的第一个结果。但是,原始问题比标题所暗示的更具体和特殊。
它也比主题和搜索表达式更复杂。因此,对于大多数访问者而言,这是一个最小但具有解释性的答案。
答案 2 :(得分:10)
git checkout [branchYouWantToReceiveBranch]
-您要接收分支的结帐分支git merge [branchYouWantToMergeIntoBranch]
答案 3 :(得分:6)
以防万一你到达这里是因为你从 Github 复制了一个分支名称,请注意远程分支不会自动也是本地分支,所以合并将不起作用并给出“我们不能合并的东西”错误。< /p>
在这种情况下,您有两个选择:
git checkout [branchYouWantToMergeInto]
git merge origin/[branchYouWantToMerge]
或
# this creates a local branch
git checkout [branchYouWantToMerge]
git checkout [branchYouWantToMergeInto]
git merge [branchYouWantToMerge]
答案 4 :(得分:0)
你可以使用这个命令
git checkout <the branch you you want to merge in to>
git merge <the branch you want contents from>