我正在创建一个脚本,它将下拉最新的主代码分支,并检查是否有任何文件名是SQL。确定文件名后,我将获取存储过程。目前我已经拉动代码并逐行准备输出,但是我的grep命令似乎无法找到sql文件名。这就是我所拥有的
#!/bin/bash
# Pull all of the latest code for the master branch, and set the commit log to
# a variable
commit_log=$(git pull origin master --quiet)
#read the commit log line by line
echo $commit_log | while read line
do
if [ `echo "$line" | grep -E "(\.sql)$"` ]; then
echo "SQL"
fi
echo "LINE:" $line
done
我没有被困在bash上,我也可以在perl中这样做。
答案 0 :(得分:2)
拉动后,新状态存储在HEAD中,旧状态存储在HEAD @ {1}中。
您可以使用git diff --name-only
在两者之间找到已更改的文件。
一个小的perl单行程似乎是检查文件名的最简单方法:
git pull
git diff --name-only HEAD@{1} | perl -wpe 'print "SQL:" if /\.sql$/'