首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制将本地拥有的所有内容合并到远程主服务器中?

如何强制将本地拥有的所有内容合并到远程主服务器中?
EN

Stack Overflow用户
提问于 2015-08-01 08:32:15
回答 2查看 1.4K关注 0票数 1

问题是,团队成员错误地创建了一个单独的分支(主要分支是主分支),名为"Head“。"Head“有最新的代码,我现在想重写到主(因为它是最新的,与所有的代码)。

当我试图执行“合并头到主人”时,我在说“无关的分支”时会出错。我搜索了一下,发现我需要在本地拉出分支("Head"),然后将它推到(或强制推)到远程“主”分支,以合并代码。

我使用了以下命令:git fetch && git checkout Head并将其签出(克隆到本地)。现在,当我试图推的时候,它显示出我已经17岁了,提交落后了,还有3个变化要推。

如何强制将本地拥有的所有内容合并到远程主服务器中?

谢谢

编辑

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

截图:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-01 09:13:26

从屏幕截图和错误消息来看,masterHead似乎没有任何共同的祖先。如果我没听错的话,

  • 您希望master的提示具有Head的当前内容(确切地说是该内容,而不是Head的内容与master的内容合并),
  • 但是您希望两个分支的历史都保存在master的祖先中。(因此,git checkout master; git reset --hard Head不是一种选择。)

您可以将Head提交重新定位在主服务器之上,如VonC suggests,以生成线性历史,代价是Head提交的代码将被重写。

如果您想要保持Head的提交保持原样,您可以进行一些模糊的合并:

  1. 首先,确保您的本地master是最新的(从您的屏幕截图,它似乎不是) git签出主git合并
  2. 实际合并 git结帐头git合并--策略我们的主人
  3. 将合并提交到master中 git签出主git合并
  4. 你可能会想要摆脱名字奇怪的Head分支,现在 git分支-D头
  5. 并将所有内容(包括分支删除)都放到远程回购系统上。 git推送源母版:头#不需要强制推送,因为没有提交在远程站点上丢弃。
票数 2
EN

Stack Overflow用户

发布于 2015-08-01 09:00:01

首先,不要将分支称为“头”:这离HEAD, which references the "current commit"非常近。

您可以轻松地重命名它:git branch -m Head Tip

对于不相关的分支情况,你可以试着在师父的上面挑选:

代码语言:javascript
复制
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)

一旦一切在本地看起来都正常,就可以在远程回购中更新新的分支名称:

代码语言:javascript
复制
git push origin --set-upstream Tip
git push origin :Head
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31759914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档