不想要的合并后回收主人(git)

时间:2018-01-02 18:10:31

标签: git merge

我想知道合并之后清理的最佳方法是什么,但事实证明我并不想要。

我的树看起来像这样:

     F---G topic1,v1
    /     \
A---B---C---D---E master

topic1,v1合并到master后,我意识到v1不是正确的方法。所以我从B创建了一个新的分支,并实现了v2。

此时,master上只提交了一些我需要的提交,因此我将它们挑选到v2分支上并使用update-refmaster指向此新分支

     F---G topic1,v1
    /     \
A---B---C---D---E master
    \      
     H---I topic1,v2
         \
          C---E master'

唯一剩下的问题是我已将master推送到原点。幸运的是,我是唯一的开发者。由于我确实想放弃旧的master,我推断push --force是可以的。但我从来不喜欢这样,所以我想知道是否有更好的方法来处理这整个情况?

1 个答案:

答案 0 :(得分:1)

强迫推动听起来非常合理。你是你说的回购中唯一的开发者,所以你不必担心会捣乱别人的工作。大概你也明白,任何从旧的,被遗弃的主分支提交中分离出来的功能分支都很难合并到新的主分支中,并且你在脑海中权衡了它你真正做过的事情。想要放弃这些变更集。

在git中,如果你担心为了历史目的而想要旧的提交,那么什么都不会丢失。分店很便宜;在重置和强制推送之前,从原始主分支的头部创建主分支(git checkout -B master_abandoned)的副本,并且您将来能够轻松地引用它,只要您决定保持分支。