我对git的了解有限,无法理解git-hooks
上的文档。我想知道是否有办法添加git-hook
或其他一些构造,以便它可以检查其中一个文件中是否存在/注释掉了某些代码。我的工作流程是我有一个配置文件globalConfig.js
,其中包含两组配置development
和production
。当我开发时,我取消注释development
配置并注释掉production
配置,但是当我将任何代码提交到我的仓库时,我想确保production
配置被取消注释并且development
配置已被评论。
摘自globalConfig.js文件
开发
// Production config - Always uncomment it before commiting
// const firebaseConfig = {
// apiKey: "prod",
// authDomain: "prod",
// databaseURL: "prod",
// storageBucket: "prod",
// messagingSenderId: "prod"
// };
// Dev config - Always comment out before commiting
const firebaseConfig = {
apiKey: "dev",
authDomain: "dev",
databaseURL: "dev",
storageBucket: "dev",
messagingSenderId: "dev"
};
生产
// Production config - Always uncomment it before commiting
const firebaseConfig = {
apiKey: "prod",
authDomain: "prod",
databaseURL: "prod",
storageBucket: "prod",
messagingSenderId: "prod"
};
// Dev config - Always comment out before commiting
// const firebaseConfig = {
// apiKey: "dev",
// authDomain: "dev",
// databaseURL: "dev",
// storageBucket: "dev",
// messagingSenderId: "dev"
//};
是否可以通过git-hook
或其他一些git构造实现它?
答案 0 :(得分:1)
以下预提交挂钩应该可以帮助您入门。如果文件中包含单词development
,那么它必须是注释,否则不允许提交。
步骤:
.git/hooks/pre-commit
:
git diff --cached --name-status | while read file;
do
if egrep "development" $file ; then
echo "ERROR: Disallowed development configuration in file: ${file}"
exit 1
fi
done || exit $?
请注意,egrep表达式是非常简单的atm,但你应该能够根据你的要求修改它(即globalConfig.js
的确切内容)OR,你可以用{{1的片段来更新你的问题}):)
globalConfig.js
chmod 755 .git/hooks/pre-commit
文件。这是我的测试显示的内容:globalConfig.js