分支之间的git smudge / clean filter [英] git smudge/clean filter between branches

查看:212
本文介绍了分支之间的git smudge / clean filter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有许多涉及涂抹/清洁过滤器的相关问题 - 我花了几个小时阅读它们,尝试各种选择,但仍然失败。我希望我能以一种方式问我得到一个适合我的答案。



具体来说,我已经阅读了大部分这些答案的页面链接回来:

p>






tl ; dr



这是一个详细的问题,但总结如下:


  • Can我将一个分支上的 DEBUG = false 存储在一个文件中,另一个分支中存储 DEBUG = true ,使用smudge / clean过滤器来管理该文件?如何?





背景



我在bitbucket上有各种远程回收站。我在Win8上使用SourceTree,将远程回购克隆到我的笔记本电脑上。我为开发,功能,发布等创建了不同的分支(遵循一个成功的Git分支



我有一个名为 Dbug.java 的Android java类,包含一个布尔值,用于打开/关闭各种调试日志,嘲笑我的代码中的功能。

  public static final boolean DEBUG = false ; 

我想这个值是 false 在我的生产(主)分支上,并且在我的功能分支上是 true




  • 这是可能使用过滤器,还是我已经误解了用例?

  • 我不确定过滤器是否像这样在2个分支之间工作相同的本地托管回购,或者过滤器只能在2次回购之间进行。






创建过滤器



在本地工作时,我检查了生产分支。我创建了一个名为 debug_flag.txt 的测试文件,内容如下:

  //生产分支上的false 
//其他分支上的true
DEBUG = false;

我在本地仓库的根目录下创建了一个名为 .gitattributes 并添加过滤器引用:

  debug_flag.txt filter = debug_on_off 

code>

我使用过滤器定义更新了 .git / config 文件:

  [filterdebug_on_off] 
clean = sed -e's / DEBUG = true / DEBUG = false /'
smudge = sed -s's / DEBUG = false / DEBUG = true /'



查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆