如何在Git分支中合并选定的更改?

时间:2012-05-19 00:04:11

标签: git merge conflict

我有两个分支用于开发和部署。我对部署分支提交了一些更改,我想将它们合并到开发分支中。现在我希望merge命令在这种情况下显示冲突 -

//development
$path = 'localhost';

//deployment
$path = 'example.com';

相反,发生的是部署分支行只是替换了开发分支行。我可以挑选提交并将它们应用到开发分支或手动进行更改但我认为必须有更好的方法来执行此操作。

2 个答案:

答案 0 :(得分:0)

只有在开发分支中更改了它才会发生冲突。因此,您只在部署中更改了它只是正常的版本更改。

只是不要在变更集中提交该特定文件。 (假设您没有对该文件进行任何其他更改)

答案 1 :(得分:0)

由于该配置文件变化很大,因此最好完全避免此类文件的任何合并问题。

您应该在单独的文件中对该配置文件的值进行版本化:

  • config_dev.values
  • config_depl.values

并且您只有一个版本化config.template文件,其中包含值的占位符:

// server name for dev or deployment or other environments
$path = '@@SERVER_NAME@@'

这样,此模板文件不会更改,也不会合并 您还可以在结帐时对脚本进行版本控制,生成实际的配置文件(不会被版本化,保持“私有”,即只对您当前的工作目录本地化)

content filter driver

如果您在.gitattributes文件中将该脚本声明为 content filter driver ,它将在git checkout上自动执行,并会查找文件识别为config.template文件(脚本未传递任何文件名或文件路径,only gets the content of each checked-out files