问题是,团队成员错误地创建了一个单独的分支(主要分支是主分支),名为"Head“。"Head“有最新的代码,我现在想重写到主(因为它是最新的,与所有的代码)。
当我试图执行“合并头到主人”时,我在说“无关的分支”时会出错。我搜索了一下,发现我需要在本地拉出分支("Head"),然后将它推到(或强制推)到远程“主”分支,以合并代码。
我使用了以下命令:git fetch && git checkout Head并将其签出(克隆到本地)。现在,当我试图推的时候,它显示出我已经17岁了,提交落后了,还有3个变化要推。
如何强制将本地拥有的所有内容合并到远程主服务器中?
谢谢

编辑
我做了das-g告诉我的事情,但似乎我在远程看到的唯一改变就是删除了Head分支。原来在Head中的代码更改已经消失了(或者丢失了!)。我可以看到标签和历史,但似乎是永远删除的变化!
截图:

发布于 2015-08-01 09:13:26
从屏幕截图和错误消息来看,master和Head似乎没有任何共同的祖先。如果我没听错的话,
master的提示具有Head的当前内容(确切地说是该内容,而不是Head的内容与master的内容合并),master的祖先中。(因此,git checkout master; git reset --hard Head不是一种选择。)您可以将Head提交重新定位在主服务器之上,如VonC suggests,以生成线性历史,代价是Head提交的代码将被重写。
如果您想要保持Head的提交保持原样,您可以进行一些模糊的合并:
master是最新的(从您的屏幕截图,它似乎不是)
git签出主git合并master中
git签出主git合并Head分支,现在
git分支-D头发布于 2015-08-01 09:00:01
首先,不要将分支称为“头”:这离HEAD, which references the "current commit"非常近。
您可以轻松地重命名它:git branch -m Head Tip
对于不相关的分支情况,你可以试着在师父的上面挑选:
git checkout master
git checkout -b tmp
git cherry-pick Tip~2 Tip~1 Tip
git branch -f Tip tmp
git checkout Tip( option is a bit more complex)
一旦一切在本地看起来都正常,就可以在远程回购中更新新的分支名称:
git push origin --set-upstream Tip
git push origin :Headhttps://stackoverflow.com/questions/31759914
复制相似问题