分支后删除master中某些代码时的Git分支和合并

时间:2017-10-16 20:07:39

标签: git

我从master分支X,从master中删除了一些代码Y.当我将X中的代码合并到master时,如何将Y添加回master(因为它没有从X中删除)。

3 个答案:

答案 0 :(得分:1)

如果您创建分支,更改master中的代码并合并(至少在此部分中)未更改的分支,则该代码将不会返回。

Git是关于所做的更改(“提交”)。如果您合并了一个已在主服务器更改的位置更改了部件的分支,则会收到通知并暂停合并。否则,更改是合并

答案 1 :(得分:1)

当你最终运行git checkout master && git merge branch-X时,Git会:

  1. 找到master当前提示的合并基础以及名称branch-X解析的提交;
  2. 运行两个git diff来比较每个分支的基数;和
  3. 尝试合并生成的更改集,将此组合应用于合并基础内容,以提供合并内容。
  4. 如果master - 方面的更改涉及删除某些行Y,那么这是第3步的输入之一。无法避免将其作为输入之一到第3步。

    除非你使用不同的合并策略 1 -merge策略有完全控制权,因此可以修改上述三个步骤中的任何一个或全部,甚至可以消除部分或全部步骤 - 唯一的事情你现在可以做的是为第3步中的灾难做准备:

    • 留下自己(或做合并的人)的笔记。例如,用一条喊叫的线替换被删除的线:"当合并时将它放回到这里。"
    • 尝试安排合并冲突,确保将来branch-X的提示将包含对同一组行的更改。

    两者都有最大的成功概率,因为无论谁做合并(你或其他人)都会看到呐喊声。但请注意,这些准备步骤可能会在未来某个时间被其他人撤消git merge。你无能为力。

    1 将来实际运行git merge的人通过git merge -s <strategy-name>拥有此控制权。然而,就目前和我认为可预见的未来而言,并非神奇的合并策略无论如何都会做你想要的。所以这也没什么帮助。

答案 2 :(得分:-1)

只需运行git merge,就是这个命令的用途。

它会尝试将YX的修改结合在一起。