我有以下.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
时执行清理操作,最后文件仍然显示为已更改和未标记,由于git更改了本地文件,我不得不再次添加-DUPLICATEgit add
。
(3( 当我浏览远程存储库时,该文件是空的-已删除。
任何想法和见解都值得赞赏。
#!/bin/bash
sed
-e "s/base64string/{FIREBASE_KEY}/g"
-e "s/url.firebaseapp.com/{AUTH_DOMAIN}/g"
-e "s/https://url.firebaseio.com/{CONN_STR}/g"
-e "s/url.appspot.com/{STORAGE_BUCKET}/g"
-e "s/projectid/{PROJECT_ID}/g"
-e "s/appid/{APP_ID}/g" $1