Git显示过去2天内更改的文件

dol*_*oug 60 git logging file fileupdate git-log

如何获得包含过去2天内更改的所有文件的列表?我知道

git log --name-status --since="2 days ago" 
Run Code Online (Sandbox Code Playgroud)

但这会显示我的ID,日期和提交消息.我只需要更改的文件名列表.

用git可能吗?

Pen*_* Qi 88

git log --pretty=format: --name-only --since="2 days ago"
Run Code Online (Sandbox Code Playgroud)

如果某些文件在多次提交中重复,您可以使用管道对其进行过滤

git log --pretty=format: --name-only --since="2 days ago" | sort | uniq
Run Code Online (Sandbox Code Playgroud)

  • 由AA发布`git diff --stat @ {2.days.ago}`更短更清洁. (7认同)

AA.*_*AA. 51

git diff --stat @{2.days.ago} # Deprecated!, see below
Run Code Online (Sandbox Code Playgroud)

简短有效

编辑

TLDR:使用 git diff $(git log -1 --before=@{2.days.ago} --format=%H) --stat

很长的解释:原来的解决方案很好,但它有一点小故障,它仅限于reflog,换句话说,只显示本地历史,因为reflog从未被推到远程.这就是为什么你warning: Log for 'master' only goes back to...最近克隆了in repos 的原因.

我在我的机器中配置了这个别名:

alias glasthour='git diff $(git log -1 --before=@{last.hour} --format=%H) --stat' 
alias glastblock='git diff $(git log -1 --before=@{4.hours.ago} --format=%H) --stat' 
alias glastday='git diff $(git log -1 --before=@{last.day} --format=%H) --stat' 
alias glastweek='git diff $(git log -1 --before=@{last.week} --format=%H) --shortstat | uniq' 
alias glastmonth='git diff $(git log -1 --before=@{last.month} --format=%H) --shortstat | uniq'                                                                                                                
Run Code Online (Sandbox Code Playgroud)

点数:@ adam-dymitruk回答如下

  • 我不得不把它改成`git diff --stat"@ {2天前}"``让它发挥作用.(也许是因为我在Windows上) (2认同)