Bash Visual studio 2019 git预提交挂钩正在忽略perl命令
我为我的项目创建了预提交钩子。如果我通过命令行或Git Extensions GUI提交更改,它可以正常工作。但如果我通过VisualStudio提交我的更改,由于某种原因perl命令会被忽略,什么也不做,输出文件是相同的 如果.json文件与我的正则表达式匹配,我将尝试删除其中的一些行。这是我在预提交钩子中使用的脚本Bash Visual studio 2019 git预提交挂钩正在忽略perl命令,bash,git,perl,visual-studio-2019,githooks,Bash,Git,Perl,Visual Studio 2019,Githooks,我为我的项目创建了预提交钩子。如果我通过命令行或Git Extensions GUI提交更改,它可以正常工作。但如果我通过VisualStudio提交我的更改,由于某种原因perl命令会被忽略,什么也不做,输出文件是相同的 如果.json文件与我的正则表达式匹配,我将尝试删除其中的一些行。这是我在预提交钩子中使用的脚本 for file in $(git diff --cached --name-only) do if [[ $file == "path/to/my/file&
for file in $(git diff --cached --name-only)
do
if [[ $file == "path/to/my/file"* ]]; then
file="./${file}"
perl -i -pne 'BEGIN {undef $/} s/^\s*"id":.*?\r?\n//img' $file
perl -i -pne 'BEGIN {undef $/} s/,(\s*})/$1/isg' $file
git add $file
fi
done
VisualStudio似乎有自己的Git实现,它没有perl命令,因此被忽略了。有两种可能的解决方案:
- 将官方Git安装到VS安装目录()
- 使用sed或其他命令替换所需字符串