Git - 强制变基

Git - force a rebase

我有一种情况,我的主分支远远落后于另一个分支。我想简单地或多或少地抹杀旧主人,让另一个分支本质上成为一个新主人。

只有我一个人在做这个项目,老主子和new/current分支没有什么共同点。

如果是这样,最简单的方法可能就是移动引用:

git branch -f master <nameOfTheUpToDateBranch>

(doc)

如果你根本不关心旧历史:

git checkout master
git reset --hard the-other-branch-i-want-as-master

这将删除您在工作树周围所做的所有更改,因此请小心使用....如果您想要的是一个新的修订版,您将工作树设置为旧主人的新修订版:

git checkout the-other-branch --detach
git reset --soft master
git commit -m "Single change to move old master to a new position where I want it"
git branch -f master
git checkout master

这可以通过两种非常简单的方法来实现。或者:

  git checkout master
  git reset --hard my-branch

或在不是主分支的任何其他分支中:

  git branch -f master my-branch