我们有一个看起来像这样的git历史记录。这已被推送到远程,但我可以在某些提交中合并分支吗?或者我仅限于在顶部合并提交?
其中blue是origin / master,magenta是一个已经物理复制到master分支的feature分支。
答案 0 :(得分:3)
如果可能,最好在两个分支HEAD之间进行合并,因为它会向主分支添加一个新的提交(合并提交),从而允许轻松(快进)推送。
其他任何内容都可能会改变历史记录,让您执行git push --force
(如果您有其他协作者使用回购协议,则可能会出现问题)
答案 1 :(得分:3)
假设提交历史记录如下,并且您希望将feature
分支合并到提交B
中:
...---A---B---C---D master
...---E---F---G---H feature
然后你可以执行以下命令:
git checkout commitB
git merge feature --allow-unrelated-histories
假设合并提交ID提交M
,如下面的提交历史记录:
C---D master
/
...---A---B---M
/
...---E---F---G---H feature
然后你可以执行命令:
git rebase --onto commitM commitB master
git push origin master -f
现在提交历史记录将是:
...---A---B---M---C'---D' master
/
...---E---F---G---H feature
答案 2 :(得分:2)
然后进入主分支 git merge“commit-id” 这应该这样做