読者です 読者をやめる 読者になる 読者になる

かまたま日記3

プログラミングメイン、たまに日常

GitHubのPull Requestで変更されたファイル一覧を取得する

Git

結論から言うと、あるPull Requestがmasterにマージコミットされると、 直前のコミット*1と、Pull Requestの最後のコミットの二つが親コミットになっているので、最初の親をHEAD^で取得しHEADとのdiffを見る。

たとえばこのPRがマージされた場合の、masterの履歴がこんな感じ

f:id:kamatama_41:20161008234549p:plain

ここで以下のコマンドを打つ。HEAD^18c4d8aなので、差分である今回のPRで変更されたファイル一覧が取得できる。

% git diff HEAD^..HEAD --name-only
scripts/1.txt
scripts/2.txt
scripts/3.txt

ちなみに、二つ目の親81c4663HEAD^2で取れるが、上記のPRの場合、これとマージコミットは差分が無いので、何も出ない。

% git diff HEAD^2..HEAD --name-only

参考

*1:PRベースでmasterにコミットしている場合は前回マージされたPRのマージコミットのはず