40

使用 git,是否可以在路径旁边列出未暂存文件的最后修改日期?使用例如。

git status

或者

git diff --name-only

4

2 回答 2

61

不直接,但您可以使用管道:

注意:原始答案根据评论更新

Linux:

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

视窗:

git status -s | while read mode file; do echo $mode $(date --reference=$file +"%Y-%m-%d %H:%M:%S") $file; done

OSX(来源):

git status -s | while read mode file; do echo $mode $(stat -f "%Sm" $file) $file; done|sort
于 2013-01-03T15:56:13.260 回答
17

注意:我需要得到按日期排序的修改文件,所以我修改了回显:

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 Hasler在评论中补充道:

要在模式下保留空格

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
于 2014-07-01T08:32:50.923 回答