はじめに
とあるプロジェクトで自分が過去に作業したファイル名の一覧を出さなくてはいけないことがあり、gitコマンドでいい感じに出力できないか試してみたところうまくできたので書いていきたいと思います。
コマンド
git log コミットID..HEAD --author="ユーザー名" --name-only --pretty=format: | sort | uniq > my_changes.txt
解説
-
git log
Gitのコミット履歴を見たり出力できるコマンドです。 -
コミットID..HEAD
差分を見たいコミットIDを指定します。HEADは最新の状態という意味。HEADを特定のコミットIDに変えることもできます。 -
--author="ユーザー名"
githubアカウントのユーザ名またはメールアドレスを指定することで、出力結果を自分の作業分のみにするオプションです。 -
--name-only
出力される内容がデフォルトだと内容なども出力される為、ファイル名のみにするオプションです。 -
--pretty=format: | sort | uniq
「--pretty=format:」はログのフォーマットを指定するオプションです。
「sort」は行をソートするために使用されます。コミットログは通常時系列で表示されますが、sortコマンドによって行がソートされます。
「uniq」コマンドは、連続する重複行を削除するために使用します。 -
> my_changes.txt
出力結果を指定したファイル名・拡張子で作成するオプションです。コマンドを実行した階層に「my_changes.txt」というファイルが生成されており、ファイルを開くと差分ファイル一覧が出力されています。
Windowsの場合
「--pretty=format: | sort | uniq」はLinux・Unix系のコマンドで、Windowsでは使えません。
その為、Windows環境でUnix系のコマンドやシェルスクリプトを実行できるGit Bashなどのソフトウェアを使用します。
Git Bashをインストールする
Git Bashでコマンドを入力する
対象ディレクトリに移動し、コマンドを実行すると差分ファイル一覧が記載されたログファイルを出力されます。
さいごに
以上、gitで自分が作業したファイルリストを出力する方法でした!
ご指摘などありましたらコメント頂けますと幸いです。