说明
获取两个commit的差异文件,并得到完整的目录结构
实现
#!/bin/bash
#Gets the differential package that specifies two different commits
if [ ! $# == 2 ]; then
echo "Usage: ./Get_differential_packet OldCommit NewCommit"
exit
fi
OldCommit="$1"
NewCommit="$2"
mkdir -p differetial_packet
mkdir -p differetial_packet/$NewCommit
mkdir -p differetial_packet/$OldCommit
for line in `git diff --name-only $NewCommit $OldCommit`
do
echo $line
mkdir -p differetial_packet/$NewCommit/`dirname $line`
mkdir -p differetial_packet/$OldCommit/`dirname $line`
git checkout $NewCommit $line
cp -f $line differetial_packet/$NewCommit/`dirname $line`
git checkout master $line
git checkout $OldCommit $line
cp -f $line differetial_packet/$OldCommit/`dirname $line`
git checkout master $line
done
使用
1、通过git log找到想要区分的两个commit号,将脚本放到git管理的项目根目录下运行脚本如下,在当前目录生成一个差异包,里面存在两个commit号的差异文件:
2、可以通过差异查看软件进行差异查看
差异软件下载:http://www.scootersoftware.com/download.php