在git commit之前隐藏文件中的字符串

时间:2010-02-19 00:51:14

标签: svn git version-control hook

我想在每次提交对该文件的更改时隐藏特定文件中的特定字符串。

实际上,我的文件中的URL不应该在远程存储库中公开。无论如何使用预提交和后提交挂钩或类似的东西隐藏它?

目前我正在使用git存储库,但知道如何使用svn来做这件事会很好。

谢谢, 西芒

2 个答案:

答案 0 :(得分:7)

您可以将该字符串保存在单独的文件中(例如资源文件,如果您的环境支持该文件),并且不将该文件置于版本控制之下。

答案 1 :(得分:4)

如果您确实必须在版本控制下拥有该文件,请使用git attribute filter driver(另请参阅GitPro book)。

  

过滤器驱动程序由clean命令和smudge命令组成,其中任何一个都可以不指定。
  在checkout时,当指定smudge命令时,命令从其标准输入中提供blob对象,其标准输出用于更新工作树文件。
  同样,clean命令用于在签入时转换worktree文件的内容。

这样,由污迹引用的脚本(私有版本,仅在您的仓库中,不由Git 管理)可以替换编码的URL,而干净的脚本将其内容恢复为编码的URL。
由git管理并推送到任何地方的同一脚本的公共版本将会...没有任何内容并保持URL混淆。

alt text