ShellScript
Git

Gitリポジトリから差分ファイルだけ取得するスクリプト

More than 3 years have passed since last update.

「差分ソースだけください」という話がよくあります。

Gitでソース管理しているなら簡単なスクリプトで差分ファイルを抽出できます。


copy-diff

#!/bin/sh

if [ -z $1 ] || [ -z $2 ]; then
cat <<EOF
Usage:
$(basename $0) <tag> <dirname>
EOF
exit 1
fi

list=$(git diff --name-only --relative $1)

if [ $? -ne 0 ]; then
exit 1
fi

mkdir -p $2
for i in $list; do
cp -v --parents $i $2
done


第1引数に差分を比較する元のコミットID(またはタグ)を指定して、第2引数にコピー先のディレクトリを指定します。

これを copy-diff などと適当な名前で保存して、 sh copy-diff 5aed859ee hogehoge-diff とやると、 指定したコミットとワーキングディレクトリの差分を hogehoge-diff というディレクトリに出力されます。