正确地重新定位git分支

时间:2015-06-02 02:00:27

标签: git github

我的分支历史如下:

发展--- o ---- o
   |
 特征

我想在功能分支中进行更改,因此我执行了以下操作

git checkout develop
git pull origin develop
git fetch origin feature:feature
git rebase develop

然后我在功能分支中进行了更改。 现在,我尝试推送功能分支,然后我

error: failed to push some refs to 'https://github.com/test/test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.

这可能是由于远程分支没有被重新定位。解决这个问题的正确方法是什么?我不想使用git push -f

1 个答案:

答案 0 :(得分:0)

假设您的develop本地分支与远程develop分支是最新的,这就是您需要做的事情

git checkout feature
git rebase origin/develop
git push origin feature --force

您正在做的是,您使用本地feature分支重新定位本地develop分支,因为我们假设您的本地和远程develop分支现在是相同的。< / p>

另一点我想说的是,当你从遥控器拉出时,总是试图拉动和变形。因此,您始终知道您的本地<branchname>和远程<branchname>具有相同的副本,并且您不需要进行单独的rebase。这是你如何做到的。

git checkout <branchname>
git pull --rebase origin <branchname>