我是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
我害怕使用那个命令,我担心会破坏原点大师?我该怎么办? 感谢您的任何帮助。
答案 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