【发布时间】:2022-01-28 06:01:30
【问题描述】:
我有以下.gitattributes:
src/boot/firebaseConfig.js filter=updateFirebaseConfig
还有以下.git/config:
[filter "updateFirebaseConfig"]
smudge = smudgeFirebaseConfig.sh %f
clean = cleanFirebaseConfig.sh %f
这是我的/usr/local/bin/cleanFirebaseConfig.sh:
#!/bin/bash
set -x
sed -i -e "s/base64string/{FIREBASE_KEY}/g" $1
sed -i -e "s/url.firebaseapp.com/{AUTH_DOMAIN}/g" $1
sed -i -e "s/https:\/\/url.firebaseio.com/{CONN_STR}/g" $1
sed -i -e "s/url\.appspot\.com/{STORAGE_BUCKET}/g" $1
sed -i -e "s/project/{PROJECT_ID}/g" $1
sed -i -e "s/idstring/{APP_ID}/g" $1
我在 MacBook 上使用 BASH。我遇到了两个问题:
(1) 它会清理我本地存储库中的文件 src/boot/firebaseConfig.js - 用占位符替换值,这不是预期的行为。
(2) 当我 git add 更改文件 src/boot/firebaseConfig.js 时执行清理操作,最后文件仍然显示为已更改和未暂存,我必须再次添加 - DUPLICATE git add 由于 git 更改本地文件。
(3) 当我浏览远程仓库时,这个文件是空的 - 被删除了。
感谢任何想法和见解。
【问题讨论】:
标签: git filter git-config gitattributes