代码之家  ›  专栏  ›  技术社区  ›  Just Rudy

把钢筋往错误的方向跑?

  •  1
  • Just Rudy  · 技术社区  · 6 年前

    我有 master 和A search 分支。我已经在我的 搜索 分支,并致力于它。然后我就跑了 git push origin search .

    我已经做了几个月了,但现在我想让这些变化反映出来 主人 ,基本上是抓 主人 高达 搜索 .

    我在这里看到的回答表明 rebase 可能是我要找的答案。执行时 git checkout master 然后 git rebase master search 我必须解决很多冲突。一旦解决了,我就以决赛结束了 git rebase --continue 完成了。

    不过,现在我看到的是 搜索 是最新的,但是 主人 显示状态消息 “你的分支机构和‘来源/搜索’有分歧” 建议我做一个 git pull 从master合并远程分支(search?)进入我的(主人?)在阅读了这里的一些答案后,我仍然有点困惑。

    问题1:我是否向后运行REBASE命令;应该是 git rebase search master ?

    问题2:我现在该怎么办?我可以执行回滚(git revert)吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jonathan.Brink    6 年前

    我相信你已经正确地执行了你的钢筋。若要验证,请查看 search 分支与主分支的尖端匹配( git rev-parse search~ git rev-parse master )

    您看到这条消息是因为您的本地 搜索 分支与远程版本的 搜索 分支……意味着它们不再有一个共同的提交……即使两个分支之间的内容可能几乎相同(减去冲突解决更改)。

    这条消息是完全可以预料的……你已经(出于很好的理由)重写了你的历史 搜索 分支,给它一个不同的基本提交。

    所以,如果你想推销你的最新产品 搜索 对遥控器的更改 搜索 分支,您需要这样做一个“强制推动”:

    git push --force origin search
    

    Git强迫您进行强制推送,因为如果其他开发人员也在 搜索 他们也会分道扬镳。

    但是,当你融入 master 你的 搜索 以这种方式更改了分支,使用 主人 在合并到公共分支之前,分支会很高兴地通过重新平衡来提高整体提交历史的清晰性。

    以下是有关力推的更多信息: https://git-scm.com/docs/git-push#git-push--f