2013-01-03 19 views

答えて

22

直接ではなく、あなたは、パイプを使用することができます:

git status -s | while read mode file; do echo $mode $file $(stat -c %y $file); done 
+8

動作する - 1回の警告で - 私が使用しています'stat'が利用できないと思われるウィンドウ上のmsysgit。しかし私は私の代わりに 'date'を使うことができることを発見しました: ' git status -s |一方、読み取りモードファイル。 $ echo $ mode $(date --reference = $ file + "%Y-%m-%d%H:%M:%S")$ file; done' – caitriona

+4

私のMacでは、 'stat -c'は動作していないようです。私はこれをこうしました: 'git status -s |一方、読み取りモードファイル。 $ echo $ mode $(stat -f "%m" $ file)$ファイルをエコーし​​ます。 done | sort'を実行します。ソース:http://stackoverflow.com/a/10198387/2486953 – jasonszhao

+0

パス内のスペースはそれぞれ$ fileで動作しません。また動作しません: "$ file"。 –

7

注:私は日付順に変更されたファイルを取得するために必要なので、私をエコーを変更しました:

git status -s | while read mode file; \ 
    do echo $mode $(stat -c %y $file) $file; \ 
done|sort -k1.4 

一行:

git status -s | while read mode file; do echo $mode $(stat -c %y $file) $file; done|sort -k1.4 

最初の日付(stat)をエコーし​​、ファイルすることで、私は最新の変更に古いものから並べ替えることができました。


Sam Haslerin the commentsを追加します。

モードでスペースを保持するには:

IFS=''; git status -s | while read -n2 mode; read -n1; read file; do echo $mode $(stat -c %y "$file") $file; done|sort 

つまり:

IFS=''; git status -s | while read -n2 mode; read -n1; read file; \ 
    do echo $mode $(stat -c %y "$file") $file; \ 
done|sort 
+0

'mode'にスペースを保存しています: ' IFS = ''; git status -s |一方、読み出し-n2モードでは、読み取り-n1;ファイルを読み込む。 $ echo $ mode $(stat -c%y "$ file")$ファイルをエコーし​​ます。 done | sort -k1.4' –

+0

@SamHasler良い点。より視認性の高い答えをあなたのコメントに追加しました。 – VonC

関連する問題