LoginSignup
3
3

More than 5 years have passed since last update.

gitのdiff / 差分を zip 出力するコマンドをエイリアスに指定

Last updated at Posted at 2015-09-09

やりたいこと

  1. gitで、特定のコミットからHEADまでの差分ファイルを
    zipファイルにまとめる。

  2. その処理を任意のコマンド名で実行する。

モチベーション

  1. 差分ファイルのみ納品・アップロードが必要な時に、
    該当ファイルを目視確認でピックアップするのは大変。

  2. 普段GUIのGitクライアント利用していて、コマンドを覚えておらず、
    簡易な記述でコマンド実行したい。

一つのやり方

gitコマンドのAliasに実行したい関数を指定する。

- 設定

僕の現時点での記述はこんな感じ。

.gitconfig
[alias]
    ziff = "!f() { git archive --format=zip HEAD `git diff --diff-filter=d --name-only $1 HEAD -- $3` -o $2.zip;}; f"

    # git ziff [コミットのハッシュ] [zipのファイル名] [特定のディレクトリのみzipにまとめたい場合はディレクトリ名を指定]

今のところ引数を最低2つ指定して実行させる仕様。

- 実行

$ git ziff HEAD^ 20150909

このように実行すると、
HEADとその一つ前のコミットの差分ファイルが格納された、
20150909.zip が カレントディレクトリに生成される。
なお各ファイルはディレクトリ構造を保ったまま入ってる。

$ git ziff HEAD^ 20150909 public

こう実行すると、./public/フォルダ内の差分ファイルのみが格納される。

TODO

  • 引数にデフォルトの値を渡したい

ドキュメント

Git - git-diff Documentation

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3