使用git smudge/clean来替换文件内容

Mat*_*mes 5 php git githooks

我正在尝试使用git来管理我的实时网站的部署.我遇到的问题是我有几个设置文件,当我推向生产时我不想更新

我正在做的是使用钩子或涂抹/清洁来改变文件内容,例如

<?php
define('DB_NAME', 'live');
define('DB_HOST', '127.0.0.1');
define('DB_USER', 'live_user');
define('DB_PASS', 'livePass');
Run Code Online (Sandbox Code Playgroud)

<?php
define('DB_NAME', 'local');
define('DB_HOST', '127.0.0.1');
define('DB_USER', 'local_user');
define('DB_PASS', 'localPass');
Run Code Online (Sandbox Code Playgroud)

有没有人可以通过这个过程跟我说话

我确实想知道使用post-receive hook和shell脚本来替换内容,但理想情况下我希望在运行git checkout之前更改repo中的内容-f在live copy之后没有更改

Von*_*onC 6

理想情况下,我希望在运行git checkout之前更改仓库中的内容-f在之后的实时副本中未更改

最接近的是一个内容过滤驱动程序将取代值git checkout.

弄脏

(来自Scott Schacon关于Git属性Pro Git书页:"关键字扩展"部分)

所以在你的情况下:在.gitattributes文件中声明的涂抹过滤器.

请参阅" git可以自动在空格和制表符之间切换吗? ",除非您使用sed替换local to live(如本示例所示)

  • -1表示没有归属的图像窃取. (2认同)