【发布时间】:2013-01-03 14:58:41
【问题描述】:
使用 git,是否可以在路径旁边列出未暂存文件的最后修改日期?使用例如。
git status
或
git diff --name-only
【问题讨论】:
标签: git
使用 git,是否可以在路径旁边列出未暂存文件的最后修改日期?使用例如。
git status
或
git diff --name-only
【问题讨论】:
标签: git
不直接,但你可以使用管道:
注意:原始答案基于 cmets 更新
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 (source):
git status -s | while read mode file; do echo $mode $(stat -f "%Sm" $file) $file; done|sort
【讨论】:
stat 不可用。但我发现我可以像这样使用date:git status -s | while read mode file; do echo $mode $(date --reference=$file +"%Y-%m-%d %H:%M:%S") $file; done
stat -c 似乎不起作用。我是这样做的:git status -s | while read mode file; do echo $mode $(stat -f "%m" $file) $file; done|sort。来源:stackoverflow.com/a/10198387/2486953
git status -s | while read mode file; do if [ "$mode" != "D" ]; then echo $mode $file $(stat -c %y $file); fi; done。
注意:我需要将修改后的文件按日期排序,所以我修改了回显:
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),然后是文件,我能够从最旧到最新的修改进行排序。
在模式下保留空格:
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
【讨论】:
mode中保留空格:IFS=''; git status -s | while read -n2 mode; read -n1; read file; do echo $mode $(stat -c %y "$file") $file; done|sort -k1.4