function escape_chars {
sed -r 's/"/\\\\"/g;s/'/\\\\'/g' #将双引号、单引号这样的特殊字符添加转义符
}
function format {
subject=$(git log -n1 --pretty=format:%s $1 | escape_chars) #只对subject部分做处理
author=$(git log -n1 --pretty=format:%aN $1)
commit=$(git log -n1 --pretty=format:%h $1)
date=$(git log -n1 --pretty=format:%aD $1)
email=$(git log -n1 --pretty=format:%aE $1)
echo "{\\"commit\\":\\"$commit\\",\\"subject\\":\\"$subject\\",\\"author\\":\\"$author\\",\\"email\\":\\"$email\\",\\"date\\":\\"$date\\"}," >> git.json
}
rm -rf git.json
for hash in $(git rev-list ${compareBranch} ^master)
do
format $hash
done
sed -i '$s/.$//;1i\\[' git.json #分号前去除文件里最后一个字符;分号后在文件头添加[
head -c-1 git.json >new.json
mv new.json git.json
echo "]" >>git.json #在文件末尾添加],和上面的[联合起来形成标准的json文件
cat git.json
JSON保存git log历史记录里subject带有特殊字符的转义的处理
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 git-log 即查看 git 提交日志,本文会全面解析 git-log 使用并通过一个真实的 Spring...
- git log命令非常强大而好用,在复杂系统的版本管理中扮演着重要的角色,但默认的git log命令显示出的东西实...
- git log命令主要用于查看Git版本演变历史(也就是提交历史),同时根据追加的参数和选项不同,也会有不同的展示...
- git show --stat或git show -s用来获取最后一次commit的简介信息: 输出结果: 加上-...