gitリポジトリに最後に編集したファイルを取得する方法はありますか?gitリポジトリで最後に編集したファイルを見つける
例:私は、午後4時59分に出発した金曜日からのコミットされていない変更の束を持っています。
gitリポジトリに最後に編集したファイルを取得する方法はありますか?gitリポジトリで最後に編集したファイルを見つける
例:私は、午後4時59分に出発した金曜日からのコミットされていない変更の束を持っています。
最後に編集したファイルを見つける方法はわかりませんが、ファイルを変更して保存した場合は、中止した場所の現在の状態をgit status
で確認できます。
デフォルトでは、変更されたものの、追加されなかったもの(作業ディレクトリ)と、追加されたもののコミットされていないもの(ステージングエリア)が表示されます。
Gitが直接追跡するものではない、プロジェクト内の最新のファイルを簡単に探しているように思えます。 Gitに関する限り、あなたはいくつかの段階的な変更といくつかの段階的な変更を行っていますが、最新のことは考えていません。
ありがたいことに、ファイルシステムはそうです。実際にはこれは単にwhich file is the newestのですが、の質問になっています.Gitの知識を使ってその回答を改善することができます(Mac OS Xバージョンfind
には-printf
オプションがありません) 。
あなたはまだあなたの変更を上演していない場合は、その後、彼らは(段階的なファイル情報を格納する)Gitのインデックスよりも新しいなければなりませんので、我々は持つ新しいすべてのファイルを見つけることができます。
find . -type f -newer .git/index
をそして、我々はできます
find . -type f -newer .git/index -exec stat -f '%c %N' {} \;
そして最後に、我々は(最新の最初を取得するために)出力をソートし、単一のファイルにそれを制限したい:
コマンドを使用してファイルの時間を問い合わせますここ私は私のリポジトリ内のいくつかのファイルを変更しました:
% find . -type f -newer .git/index -exec stat -f '%c %N' {} \; | sort -r | head -1
1466437626 ./staged_edit
:
% git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: unstaged_edit
Untracked files:
(use "git add <file>..." to include in what will be committed)
unstaged_add
no changes added to commit (use "git add" and/or "git commit -a")
をそして私は、最新の検索したい場合は