从源分支移动提交,但在目标分支将合并回原位时保留提交?

时间:2018-07-06 14:56:27

标签: git

我们开始在dev分支中开发功能,但意识到这将花费更长的时间,因此我们在开发过程中为其余更改创建了功能分支。

提交在dev分支中不连续。我们希望在dev分支上还原这些提交,以准备发布而无需任何功能分支代码。

我们有这个:

A--Fa--B--Fb--C--D--E--F--G   <-- dev
               \
                Fc--Fd--Fe    <-- feature

我们想要这个:

A--B--C--D--E--F--G   <-- dev
 \
  Fa--Fb--Fc--Fd--Fe  <-- feature

这很容易通过恢复FaFb在dev分支上的提交来实现。但是,当需要合并功能分支时,git会抱怨吗?

A--B--C--D--E--F--G--H--   <-- dev
 \                  /
  Fa--Fb--Fc--Fd--Fe        <-- feature

答案appears to be yes ...,我想知道是否有办法避免这种情况?

This question几乎完全是我要的内容-但我的提交不是连续的。有关系吗?

我无法(轻松地)重写历史记录,但是我想这是可能的(只有其他两个开发人员拥有该存储库)。

2 个答案:

答案 0 :(得分:0)

因此,在稍微使用git之后,唯一的选择是还原提交,重置dev分支,然后重新提交所有内容(包括非功能性工作),因为它是一个巨大的blob,强制推送然后合并将更好地工作。

注释掉几行以使代码失效更容易。

答案 1 :(得分:0)

我认为您可以将自己的dev分支硬重置为提交A。然后您可以在此处启动一个新功能分支,然后为这两个分支选择合适的提交。完成选择提交的工作后,请删除旧功能分支。我认为您会优雅地达到想要的状态。