“有选择地”与git合并

时间:2011-06-19 22:13:59

标签: git

我想拥有一个带有分支进行开发的git存储库和一个用于部署的分支。我有几个我的项目需要的配置和数据库文件。我希望部署分支不具有我的项目的任何配置或数据库文件,但我想在我的开发分支中保留这些文件的版本以便能够进行测试。在将开发分支合并到部署分支时,有没有办法让合并过程忽略这些文件?

3 个答案:

答案 0 :(得分:6)

您可以使用git merge --no-commit并在提交合并之前删除配置文件。不过,可能会有更多简化的可能性。

但是,我建议要么在两个分支中都有文件,要么根本没有。您使用的语言和开发环境是什么?它们是否提供了根据您尝试构建的构建类型来指定不同文件的可能性?

答案 1 :(得分:3)

来自专业书:http://git-scm.com/book/en/Customizing-Git-Git-Attributes#Merge-Strategies

您的分支

 echo 'myconfig.cfg merge=ours' >> .gitattributes

您可以gitignore(man gitignore)或仅在您的分支中保留.gitattributes本地

答案 2 :(得分:0)

您可以进行伪合并。这实际上是对尚未合并的提交的重新定义。因此,如果您之前合并并保留了两个分支的方式,那么您应该只合并上次合并后提交的差异。

以下是描述这种“特殊合并”的答案:

Always ignore a certain commit on merge in git