我有分支主管和分支开发。我错误地从master开始了一个功能分支。意思是,当我在掌握时,我做了git checkout -b feature-branch
。
现在我想合并分支dev上的功能分支。我该怎么做?
答案 0 :(得分:1)
如果没有太多提交,那么" git cherrypick"是一个选项:
编辑:我添加了一个例子,如何使用" git rebase"命令:
如果您不害怕计数提交,也可以使用branch~N语法而不是提交哈希;)虽然它只是一个命令,但我仍然会使用第一个选项,因为它需要相当多的努力为了正确(即检查手册,选择正确的命令行参数)。因此,只有移动更长的主题分支才有意义。
答案 1 :(得分:0)
将您从一个branch
提交的提交更改合并到另一个您可以使用的更改:git merge <branchname>
。让我举个例子:“
我想将我在分支dev
上所做的更改与我的master branch
合并。我要做的第一件事是在分支dev
上提交更改,然后我将切换到分支master
,我将使用以下方法合并dev
分支的更改:
git merge dev
所以一步一步:首先从开发分支提交您的更改。
git commit -m "<commit message>"
第二步:切换到主分支
git checkout master
最后一步:合并dev
分支/
git merge dev
希望这有帮助!
答案 2 :(得分:0)
您可以使用'git log'在开始工作之前找到该点,然后使用'git diff'查找当前HEAD与该点之间的差异。 'git apply'将适用那种差异。
在功能分支上,使用git log查找工作的开始。在工作之前记录提交。
git checkout feature-branch
git log
存储您在上面找到的点与您的工作之间的差异(当前的HEAD修订版)。 HEAD是一个隐含的论点。
git diff (commit_from_step_above) > patch.txt
将您的更改应用于正确的功能分支。
git checkout dev
git checkout -b proper_feature-branch
git apply patch.txt
(add, commit, etc)
如果其他人更改了您正在更改的相同文件,则会发生合并冲突。这是预期的。