我有这些分支:
我们称呼他们:
M :master
→
P :limpiezaPropiedades
→
F :listaYFormularios
我想把两个分支“放在同一级别”:
M :master
→
P :limpiezaPropiedades
M :master
→
F :listaYFormularios
我怎样才能以最简单的方式实现这一目标?
答案 0 :(得分:1)
一些可能的解决方案:
1)。樱桃挑选
git checkout master
git cherry-pick limpiezaPropiedades..listaYFormularios # Picks all commits in this range, not including the commit at 'limpiezaPropiedades'
2)。变基
git checkout listaYFormularios
git rebase -i master
# Remove lines for commits that belong to limpiezaPropiedades
# BE CAREFUL, if you remove a commit that belongs to 'listaYFormularios', it will be lost and you will have to go through the reflog to recover it
答案 1 :(得分:1)
您可以执行交互式rebase来删除F
中不需要的提交。这可以通过执行以下操作来完成:
F
签出。git rebase -i master
。F
上不在分支master
上的所有提交的列表。此文件是rebase命令在完成编辑后将重放的脚本。在这种情况下,由于您要做的只是从F
中删除一些提交,请删除代表P
中您不想要的F
提交的行。< / LI>
F
现在将基于master
。请注意,如果你没有推送F
,你应该(可能)只执行此操作,因为这会导致提交哈希值发生变化,并且当他们拉动你的分支时会引起其他开发人员的悲痛。
有关变基的更多信息,Git - Rewriting History有一个非常好的概述。