我有一个文件,database.properties
其中有
password = something
Run Code Online (Sandbox Code Playgroud)
因此,每当我必须测试某些东西时,我必须将此行更改为我的本地密码.团队中的每个人都有自己的本地密码.
我想我将不得不做以下其中一项:
每次我提交我都不应该添加database.properties
索引(我不想要ignore
这个文件),但是当文件太多时很容易错过这个文件.
在提交之前撤消更改,但大多数时候我忘记这样做.
创建个人资料可能是实现这一目标的一种方式,但即使会有类似的问题database.properties
.
我已经检查了可以git忽略一个特定的行吗?以及如何告诉git忽略单独的行,即特定行代码的gitignore.
从暂时忽略文件,我看到我们可以做到
git update-index --assume-unchanged <file>
Run Code Online (Sandbox Code Playgroud)
但我每次都要这样做.
所有上述参考文献在3 - 4年之前被提出/写入.所以我只想知道如果有更好的方法可以忽略这一行.
编辑
按照@ VonC的回答,我试图添加一个过滤器 .git/info/.gitattribute
{directory_path}/database.properties filter=password // I have given the correct directory path.
Run Code Online (Sandbox Code Playgroud)
我已添加smudge
和clean
脚本为:
git config --global filter.password.smudge ~/smudge.sh
git config --global filter.password.clean ~/clean.sh
Run Code Online (Sandbox Code Playgroud)
(当我运行~/smudge.sh
并且~/clean.sh
它password= something
正确替换了行.所以脚本是正确的.)
但是当我添加/提交时database.properties
,似乎对database.properties
文件没有任何影响.(我猜我~/clean.sh
应该在将其添加到索引时运行)
我究竟做错了什么?
我支持我 2014 年在“ Can gitignore a certain line? ”中的回答:git 内容过滤器用于通过另一个内容更改文件的一行。
它仍然需要一个(一次性)git config
命令才能在您的存储库中声明该过滤器,但它将保持活动状态(与 a 相反git update-index
,它可以在 a 上被丢弃git reset
)
过滤器与文件中的文件关联.gitattributes
,放置在与database.properties
. (参见讨论)
它与在存储库的本地配置中执行的程序关联。
归档时间: |
|
查看次数: |
3593 次 |
最近记录: |