Help us understand the problem. What is going on with this article?

コミット間で変更されたファイルを列挙する

More than 3 years have passed since last update.

要望: 前回のコミットで変更されたファイルを開きたい

下のコマンドで行ける形にする。git diff --name-only HEAD HEAD^を使う。

vim `diff-name`

設定方法: ワンラインで設定できる

以下のコマンドをコマンドラインに叩くか、rcファイルに記述する。

function diff-name(){if [ "$1" = "" ]; then commit=HEAD^;else commit=$1 fi;echo `git diff --name-only HEAD $commit | tr '\012' ' '`}

注意

ファイル名にスペースが入っていると期待した動作をしない。

使用例

前回のコミットから変更のあったファイルをバッファに入れてVimを起動。

vim `diff-name`

origin/masterとの間で変更のあったファイル一覧をVimで開く

vim `diff-name origin/master`

アレンジ

echoではなく、そもそもvimを起動する。

function open-vim-diff-name(){if [ "$1" = "" ]; then commit=HEAD^;else commit=$1 fi;vim `git diff --name-only HEAD $commit | tr '\012' ' '`}

参考リンク

http://qiita.com/mo_to_44/items/6d8b34f4419c604bb23e

tamanobi
Vim/Python/C++/Common Lisp/PHP/JavaScript/データ分析/機械学習/画像解析/NEM
admin-guild
「Webサービスの運営に必要なあらゆる知見」を共有できる場として作られた、運営者のためのコミュニティです。
https://admin-guild.slack.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away