仅合并文件的某些部分

时间:2016-01-11 08:50:37

标签: git git-merge gitignore

我是Git的新手(一般版本控制)。我相信只有我无法找到它才能解决我的问题。

我对本地分支的大部分更改都说X.

master和X都有一个配置文件(master有server的配置,本地的local配置)不同。因此,当我将X合并到master中时,我必须将配置添加到git ignore。这样可行,但是当我需要在X上更改配置时应该怎么办?同样适用于master?

2 个答案:

答案 0 :(得分:0)

不,没有简单的解决方案。事实上,也没有实际的解决方案。

3向合并的基本属性之一是,如果将分支A合并到B然后(立即)B合并到A,则在两个分支上将获得相同的状态。这在所有版本控制系统中都是如此,但在Git中更为明显,因为Git会查看历史记录,意识到B上没有任何变化,只需将B移动到指向与A相同的版本。结合Git的事实always¹合并整个树,这意味着保持文件在分支之间不同,同时合并某些文件两种方式都需要每次都手动处理该文件而永远不会忘记。不实用。

带源的版本控制存储库无论如何都不是特定于环境的文件的正确位置,因为源将在每个需要不同配置的环境中使用。

建议的过程是使用版本化模板和 unversioned 实际配置。另请参阅https://softwareengineering.stackexchange.com/q/290104/108627

¹实际上,有一些例外,比如子树策略,但它们都不匹配这个用例。

答案 1 :(得分:0)

您可以使用SourceTree轻松完成此操作。