最近在开发trove中,因为误提交,本地项目的devel分支已经与上游的的devel分支不一致了。为了更好的创建分支,或者后面进行cherry-pick准备打包,都需要将本地的分支与上游的分支做一下rebase。

注:上游指的是eayunstack/trove,本地指的是2hf/trove

首先,我们要添加upstream远程仓库:

$ git remote
origin
$ git remote add upstream git@github.com:eayunstack/trove.git
$ git remote -v
origin git@github.com:2hf/trove.git (fetch)
origin git@github.com:2hf/trove.git (push)
upstream git@github.com:eayunstack/trove.git (fetch)
upstream git@github.com:eayunstack/trove.git (push)

然后更新upstream

$ git fetch upstream

此时远程仓库已经准备就绪了,这时候我们就可以rebase本地的分支了。两种做法:

# option one
$ git checkout devel
$ git rebase -i upstream/devel

# option two
$ git checkout devel
$ git reset --hard upstream/devel

注:如果之前2hf/devel分支已经做过push了,为了保持与上游一致,需要git push -f