如何使用git中的override选项将一个分支合并到另一个分支中

如何使用git中的override选项将一个分支合并到另一个分支中,git,Git,我正在使用git,我有两个分支:production和master。此时,产品已投产9个月,主分支机构发生了许多变化 我正在使用capistrano,因此我需要将所有更改推送到生产分支,以便部署。然而,当我合并时,我会遇到大量的合并冲突。我不关心合并问题,因为我希望我的生产分支被主分支覆盖。有办法吗 如果不是的话,我正在考虑创建一个名为production_old的生产分支。然后删除生产分支中的所有内容,然后从主分支合并 我正在使用github。也许您正在寻找的是我们的合并策略 我们的 这将解析

我正在使用git,我有两个分支:production和master。此时,产品已投产9个月,主分支机构发生了许多变化

我正在使用capistrano,因此我需要将所有更改推送到生产分支,以便部署。然而,当我合并时,我会遇到大量的合并冲突。我不关心合并问题,因为我希望我的生产分支被主分支覆盖。有办法吗

如果不是的话,我正在考虑创建一个名为production_old的生产分支。然后删除生产分支中的所有内容,然后从主分支合并


我正在使用github。

也许您正在寻找的是我们的合并策略

我们的 这将解析任意数量的头,但合并的结果树始终是当前分支头的树,有效地忽略所有其他分支的所有更改。它旨在取代分支机构的旧发展历史


更多

警告:我没有使用github的经验。话虽如此

我不认为你真的想在这里合并。如果我理解正确,您有一个反映部署内容的分支(
production
),您有一个包含部署内容以及更新更改(
master
)的分支,但现在您准备将
master
中的更改升级为新的
production
内容

在这种情况下,我认为您的最后一个建议接近您想要做的,尽管您不需要在现有的生产分支中删除内容。我会的

  • 标记当前的
    生产部门
    分支,以免丢失跟踪信息
  • 移动
    生产
    分支,指向
    主控
    的头部
  • 我相信您可以通过运行
    git branch-f production master
    来执行步骤2,它应该以
    master
    为起点创建一个新的
    production
    分支。因为
    production
    已经存在,您需要
    -f
    标志来强制创建它。这也应该相当于运行
    git checkout production
    ,然后
    git reset--hard master
    强制分支的头与
    master
    匹配


    再说一次,在做任何事情之前,我一定要给你原来的
    生产部门的负责人贴上标签,既为了子孙后代,也为了一张安全网,以防第一次出现问题。

    实际上,如果罗杰试图将生产合并到master,则将使用我们的
    ours
    ,因为
    ours
    认为被合并的分支已过时。在Roger的例子中,他希望签出的分支被认为是过时的,以便合并该分支