我有分支主分支dev。我错误地从主人开始了一个功能分支。意思是,我在做主人时做了git checkout -b feature-branch
。将分支合并到与起始分支不同的分支
现在我想合并分支开发中的功能分支。我该怎么做?
我有分支主分支dev。我错误地从主人开始了一个功能分支。意思是,我在做主人时做了git checkout -b feature-branch
。将分支合并到与起始分支不同的分支
现在我想合并分支开发中的功能分支。我该怎么做?
如果没有太多的提交,然后“混帐cherrypick”是一个选项:
编辑:我添加了一个例子,如何做同样用“git的变基”命令:
您还可以使用支〜n的语法,而不是提交哈希如果你不害怕提交提交;)尽管它只是一个命令,但我仍然会使用第一个选项,因为它需要付出相当多的努力才能使其正确(即检查手册,选择正确的命令行参数)。所以只有移动更长的主题分支才有意义。
这实际上是最简单的解决方案! –
另一个不错的选择是“git rebase”,但这可能需要更多的时间和精力来获得命令行参数。 – JooMing
只是出于好奇,我如何用rebase做到这一点? –
将您从一个branch
所做的已提交更改合并到另一个您可以使用的:git merge <branchname>
。让我帮你一个例子:”
我要合并我已经与分支dev
所做的更改我的master branch
我会做的第一件事是提交分支dev
的变化的话,我会切换到分支。 master
,我会通过合并从dev
分支的变化:
git merge dev
所以一步一步:首先从开发分支提交更改
git commit -m "<commit message>"
第二步:SWITC h至主分支
git checkout master
最后一步:/从dev
分支合并更改
git merge dev
希望这有助于!
在开始工作之前,您可以使用'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)
如果其他人已经改变了您要更改相同的文件,你就会有一个合并冲突。这是预料之中的。
'git checkout master && git merge featurebranch' ?? – ckruczek
@ckruczek但我想合并到dev –
然后签出dev而不是master。怎么了? – ckruczek