git-flow 完成发布 - 选择性 merge

标签 git git-merge git-flow

我们最近开始在公司使用 git-flow,并且遇到了以下问题:

我们有一个 DEV_MODE bool 值来控制应用程序中的日志记录级别,我们希望开发分支始终具有 DEV_MODE=true
但是,在发布版本时,我们将 DEV_MODE 更改为 false

当我在 git-flow 中完成发布时,它会将 DEV_MODE=false merge 到开发分支中。

我有一个可以用来防止这种情况的钩子(Hook),或者也许是一种告诉 git 如何 merge 来自发布分支的文件以进行开发的方法?

最佳答案

您可以通过对文件"template"进行版本控制(其中包含占位符值)来完全避免 merge 问题:

DEV_MODE=@devmode@

然后您可以声明 content filter driver (在 a .gitattributes file 中)为了在 checkout 时自动为该文件生成正确的内容, depending on the branch currently checked out .

http://git-scm.com/book/en/v2/book/08-customizing-git/images/smudge.png

(“Customizing Git - Git Attributes”中显示的图像,来自“Pro Git book”)

smudge 脚本可以使用它来检测当前分支:

#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)

关于git-flow 完成发布 - 选择性 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739242/

相关文章:

git - 如何 rebase merge 但保留 merge 提交

objective-c - Storyboard在 merge 期间损坏

git - 使用 maven + gitflow 发布

macos - 如何让 gitflow 允许创建多个修补程序?

git - 如何更改默认的 git 提交消息

Gitlab - 查看提交中删除的文件列表

git - merge 不同的分支时卡在 git rebase 上

git - 如何从远程 Git 存储库中 pull 并覆盖本地存储库中的更改?

git - 在 .gitmodules 中找不到子模块映射

Maven 和 git-flow,候选发布版本策略