Gitのcommit番号間の差分を取得し一覧の作成と差分ファイルを抽出するシェル

Gitにプッシュしたプログラムをリリースする際にJenkins等のデプロイツールが用意できず致し方なく手作業でリリース場合があると思います。その際にリリース漏れを防ぐ目的でリリース一覧とリリースする資材を抽出するシェルを作成いたしました。

「コミット一覧出力」「commit番号間の差分ファイル一覧出力」「commit番号間の差分ファイル出力」Gitのコマンドでバラバラに行うのは大変なのでコマンド一つ実行するだけで一発でこれらを出力するシェルを作成いたしました。

Gitのcommit番号間の差分ファイル一覧とファイルを出力します。ローカルの環境でGitBash、SorceTreeのコンソールからなどからgitのコマンドを受け付けることが前提となっています。


シェルの配置個所

C:\workspace
      ├── create_release_list.sh (リリース一覧取得するためのシェルをこの位置に配置してください。)
      ├── Gitリポジトリ1
      │   ├── fuga1
      │   └── fugafuga1
      ├── Gitリポジトリ2
      │   ├── fuga2
      │   └── fugafuga2
      └──  Gitリポジトリ3
          ├── fuga3
          └── fugafuga3


シェルの実行時の引数

$1:リポジトリ名 → 必須

$2:commit番号(From) → 任意(未設定の場合はタグが設定されていれば、タグからHEADまでの差分、タグが未設定なら最古のcommit番号からHEADまでの差分を一覧として取得します。

$3:commit番号(To) → 任意(未設定で$2が設定されている場合はFromからHEADまでの差分を一覧として取得します。

入力例

リポジトリ「repository_fuga」の最古のコミット番号から最新のコミット番号まで
sh create_release_list.sh repository_fuga

リポジトリ「repository_fuga」のコミット番号「0162e65a」から最新のコミット番号まで
sh create_release_list.sh repository_fuga 0162e65a

リポジトリ「repository_fuga」のコミット番号「0162e65a」からコミット番号「57228b29」まで
sh create_release_list.sh repository_fuga 0162e65a 57228b29


出力ファイル

シェル実行後、シェルと同じ階層に一覧をテキストファイルに出力します。

release_list:commit番号間の差分ファイルの一覧を出力

commit_list:コミットした日付、ユーザ、commit番号、コメントを一覧に出力

release_source.zip:commit番号間の差分ファイルを出力(ディレクトリ構造も考慮されています)

差分のない場合は空で出力されます。

これより下、実行シェル「create_release_list.sh」になります。

実行シェル

create_release_list.sh

ここから先は

1,885字

¥ 100

この記事が気に入ったらサポートをしてみませんか?