【问题标题】:Hide a string in a file before git commit在 git commit 之前隐藏文件中的字符串
【发布时间】:2010-02-19 00:51:14
【问题描述】:

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

实际上,我在一个文件中有一个不应在远程存储库中公开的 URL。有没有使用 pre-commit 和 post-commit 钩子或类似的东西来隐藏它?

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

谢谢, 西芒

【问题讨论】:

    标签: svn git version-control hook


    【解决方案1】:

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

    【讨论】:

    • 我也会这样做。就不必使用 git hooks 和有一个中心位置来存储敏感信息而言,它更干净。
    • +1。这对于源代码控制系统和维护特定于安装的设置都是最简单的方法。但至少有了 git,应该有办法让原计划生效,因为 git(与 svn 不同)允许部分文件提交。
    • 是的,实际上像这样的简单解决方案会起作用。谢谢:)
    【解决方案2】:

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

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

    这样,smudge 引用的脚本(私有版本,仅在您的 repo 中,不由 Git 管理)可以替换编码的 URL,而 clean 脚本会将其内容恢复为编码网址。
    由 git 管理并推送到任何地方的同一脚本的公共版本将做...什么都不做,并保持 URL 混淆。

    【讨论】:

    • 谢谢。这就是我一直在寻找的。​​span>
    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 2022-01-17
    • 2015-06-02
    • 2010-11-23
    • 1970-01-01
    • 2017-04-18
    • 2023-03-05
    • 2019-06-06
    相关资源
    最近更新 更多