代码之家  ›  专栏  ›  技术社区  ›  filippo

Git合并驱动程序问题

  •  2
  • filippo  · 技术社区  · 16 年前

    我正试图让Git允许我进行非常手动的合并,因为我的代码是这样的(说来话长,它是 explained here )我几乎按我想要的方式得到了它,只是在特定的情况下丢失了一些东西。不应该太难: 我有一个自定义驱动程序,可以使用WinMerge c:/wm/winmerge.exe $1 $2 $3 (输入c:/wm/wmrg.sh) git config merge.mnl.driver = "c:/wm/wmrg.sh %B %A %A" 以及 echo *.xml merge=mnl > $GIT_DIR/info/attirbutes .

    现在当我 git merge dev 它打开了Winmerge,让我来做这项工作-太棒了。它只是在以下情况下不起作用:

    有我的两个分支( 主人 DEV )已提交,但有一些更改正在等待 DEV 合并生产。

    1. 回到 master
    2. 在中重命名一些与更改无关的文件(例如,某些readme.txt文件为manual.txt文件)。 dev 并提交它
    3. DEV 合并这些更改 主人 [ 新的驱动程序启动并询问您是否应该将这些配置传递到中的其他文件 DEV . 退出WinMerge而不保存,因此不迁移信息。查看完XML后,不会过滤文本并在dev中重命名。 ]
    4. 现在回到 主人 合并 DEV

    在这里,我希望驱动程序能够再次启动,并在XML方面表现出相同的行为。 Git合并DEV 它决定自动合并所有内容!

    请告知…

    谢谢

    2 回复  |  直到 16 年前
        1
  •  1
  •   VonC    16 年前

    Git可能会考虑:

    • 因为master已合并到dev(即使某些文件未被处理)
    • 从dev到master的合并是一个很普通的合并,因为只剩下新文件,而不是修改过的文件。

    而且,由于合并驱动程序只对普通文件起作用,所以在第二次合并时不会起作用。

        2
  •  1
  •   Community Mohan Dere    9 年前

    我想我知道了……我这里有一个概念上的问题。这在吉特是不可能实现的,至少不是我想要的方式。

    整个工作就是确保当我的开发周期结束时 DEV 主人 处于同一提交级别的分支。理论上,只有几行代码与它们的环境不同,但其余的代码都是相同的。

    如果我有这个权利,Git中的每个提交都会被标识为该版本中的sha-1,所以如果任何文件有一个字符不同,它就不能是同一个提交。

    我在上面描述的问题是,Git会变得聪明,并找到一种方法来制造大师和开发人员。 完全一样 基于我的行为,从而使它进入最终状态。

    正如我所评论的,我设法前后应用特定的更改 cherry-pick 但唯一真正的方法是 主人 DEV 正确跟踪将使用关键字扩展过滤器(如VONC所述 here 在这里 以及其他许多人)

    谢谢你的帮助,

    f.