【问题标题】:Git Merging Fixing IssuesGit合并修复问题
【发布时间】:2013-12-16 15:18:01
【问题描述】:

我有一个仓库,有这些分支:

  • 大师
  • 变化
  • 数据库更改
  • 订购

我想将它们合并到 master 分支。因此,更改为 master,然后更改数据库 .... 等等。但是,合并存在问题,因为 master 已经向前移动,而其他分支也在处理。

当它说修复文件时,即选择它们应该如何,我希望他们使用正在合并的分支。

例如,如果我将 Changes 合并到 Master 中,我希望 Git 使用 Changes 文件。合并失败后如何指定?

# git checkout master
# git merge Changes
# ---LOTS of ERRORs here ---

我现在使用:

# git add -A
# git commit -m "Using these resolutions"

或类似的东西:

# git checkout Changes
# git add -A
# git commit -m "Using these resolutions"
# git checkout master
# git merge Changes

【问题讨论】:

  • 请注意,这样做实际上会丢弃对 master 所做的任何更改的大块 - 这可能会破坏那些没有被丢弃的更改部分。除了在一些非常特殊的情况下,这可能不是最明智的选择——尽管,诚然,“嘿,看,没有合并冲突”在短期内更方便......
  • 对不起,我不确定你的意思。这也有什么参考意义?
  • 如果您在合并时盲目地忽略 file.c 可能在您的主分支上被修改的方式,而只是将其替换为您的开发分支中的 file.c,那么您实际上是在扔掉所有在您的主分支上的该文件中所做的更改。根据该代码如何依赖于其他文件中的代码(反之亦然),您将通过盲目丢弃对 master 所做的更改来破坏某些东西......
  • 是的,我完全明白这一点。幸运的是,我在分支上工作以进行改进,然后最终将它们合并,大师领先的唯一原因是因为 Visual Studio 在打开和关闭解决方案文件时,它们会发生轻微变化,所以我可以忽略所有这些冲突!归根结底,一次只有大约 2 个更改真正发生冲突!

标签: git merge bitbucket


【解决方案1】:

你可以git merge -s oursmaster进入你要合并的分支,然后再合并回master。

【讨论】:

  • 请您详细说明更多代码的含义?谢谢
  • 我认为它有效,我在 Changes 分支中签出时使用了该行,然后签回 master 并提交了所有内容,bitbucket 表示 master 已合并到 Changes 中
  • 正如@minitech 指出的,在你开始做任何工作之前总是将你的主分支合并到你的开发分支中,经常在你做工作的时候,在你完成工作之后再次合并。然后合并到 master 将是微不足道的。大量的小合并比怪物合并要容易得多。
  • 是的,很公平,我喜欢这种方法,所以如果我使用git merge -s ours,任何完全相同的更改都会被工作分支覆盖?
猜你喜欢
  • 2015-10-07
  • 2012-01-18
  • 1970-01-01
  • 2021-04-25
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
相关资源
最近更新 更多