git の diff で差分のあるファイルをサーバーにアップロードするため抽出したい。ということがたまにあります。 私はMacを使っているのでbashでスクリプトを作りました。Windowsな方はMacを買ってください。ナンチャッテ。
#!/bin/bash rm -rf ~/diff_file echo "以下のファイルを作成しました" cmd="`git diff --name-only $1 $2`" for file in $cmd do path=${file%/*} mkdir -p ~/diff_file/${path} cp $file ~/diff_file/$file echo $file done
■ 全体の流れ
コマンドを実行するときに、.git のあるディレクトリに移動します。コマンドを実行するとホームディレクトリ下にdiff_fileというディレクトリを作成し、ファイルが格納されます。
■ 2行目
~/diff_file を削除します。
■ 4行目
次にgitのdiffコマンドを実行します。
git diff –name-only
とすることにより、差分のあるファイル名のみが出力されます。
$1、$2は引数です。例えば、–cachedや origin/master など引数を2つまで与えら得ます。
■ 5行目
for文の中では、ファイルのpathを取得し、~/diff_fileの中にディレクトリを作成し、その後ファイルをそのディレクトリにコピーすることを繰り返します。
■ 10行目
確認のため、作成したファイルを echo します。
簡単なスクリプトですが、アップロード対象が多い場合には助かりますね!
The following two tabs change content below.
ロゴスウェア
ロゴスウェア株式会社は、インターネットや情報技術を使って学習に革新的進化をもたらす製品を開発することを目標に、2001年7月に設立されたテクノロジー系ベンチャー企業です。
最新記事 by ロゴスウェア (全て見る)
- Amazon Linux(EC2)と PHPSTORM で Xdebug を行う - 2018年9月26日
- やらないことの合意 - 2018年6月27日
- 卒園アルバムとプロジェクトマネジメント - 2018年3月30日
Comments are closed.