使用git,是否有可能在未暂存的文件旁列出其最后修改日期和路径?例如使用:
git status
或者
git diff --name-only
git status
或者
git diff --name-only
虽然不能直接实现,但您可以使用管道(pipe):
注:原回答已根据评论进行更新
Linux系统:
git status -s | while read mode file; do echo $mode $file $(stat -c %y $file); done
Windows:
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
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
- Sam Hasler
git status -s | while read mode file; do echo $mode $(date --reference=$file +"%Y-%m-%d %H:%M:%S") $file; done
- caitrionastat -c
命令好像不起作用。我是这样做的:git status -s | while read mode file; do echo $mode $(stat -f "%m" $file) $file; done|sort
。来源:https://dev59.com/gmLVa4cB1Zd3GeqPz84S#10198387。 - user2486953git status -s | while read mode file; do if [ "$mode" != "D" ]; then echo $mode $file $(stat -c %y $file); fi; done
。 - keineahnung2345