git rebase local branch to remote master

时间:2014-08-22 02:30:41

标签: git github command rebase git-bash

我是git的新手,并且在紧急情况下使用git命令将我的本地分支重新绑定到远程主控。 事情就是这样发生的。

1.我在Github上从Logan676/seadroid分发了一个回复haiwen/seadroid

2.我在lguo

上创建了一个名为Logan676/seadroid的新分支

3.然后做一些更改,提交。与此同时,原始主人haiwen/seadroid也被其他人更新。

4.现在我想将lguo重新定义为haiwen/seadroid的最新原始大师。

我使用了以下命令:

git fetch origin            # Updates origin/master
git rebase origin/master    # Rebases current branch onto origin/master

gitbash中的输出是:Current branch lguo is up to date

但团队成员告诉我,我的分支机构被重新分配给分叉的回购主机而不是原始主机。 我对此很困惑,我是否错过任何命令?

顺便说一句,我注意到有人这样写了

git clone
git checkout -b dev_branch
[do some changes, commit]
git fetch origin
git rebase origin/master
git push origin HEAD:master

所以我应该添加最后一个命令行

git push origin HEAD:master

我害怕使用那个命令,我担心会破坏原点大师?我该怎么办? 感谢您的任何帮助。

2 个答案:

答案 0 :(得分:1)

虽然可以从本地分支A推送到远程分支B,但在这种情况下,两个分支都已分叉并且推送将被拒绝。您仍然可以强制推送,但这意味着丢失了自创建分支lguo以来在master中发生的任何提交。

我建议您执行以下操作

git checkout master
git pull origin master
git merge lguo

这可能需要一些合并。生成的主分支具有您在lguo上所做的所有更改。最后:

git push origin master

答案 1 :(得分:1)

远程来源指向github上的克隆 Logan676 / seadroid ,而不是 haiwen / seadroid 。您的 Logan676 / seadroid 的本地克隆不知道原始的 haiwen / seadroid 存储库。

您需要将原始存储库添加为本地克隆的附加远程数据库:

git remote add haiwen git@github.com:haiwen/seadroid.git

然后你可以做

git fetch haiwen
git rebase haiwen/master