There are number of questions which try to map the CVS ability of `cvs diff -D "1 days ago"` to git:

[Git - How can I list all files changed on the master branch between two times?](https://stackoverflow.com/questions/14863735/git-how-can-i-list-all-files-changed-on-the-master-branch-between-two-times)

[How can I get the diff between all the commits that occurred between two dates with Git?](https://stackoverflow.com/questions/1161609/in-git-how-can-i-get-the-diff-between-all-the-commits-that-occured-between-two)

But from my understanding from the comments in this question:

[Does copying the Git bare repo change the log?](https://stackoverflow.com/questions/14906091/git-does-copying-the-bare-repo-change-the-log)

performing `git diff --name-only master@{"5 day ago"} master` is local to your machine and can not resolve issues with merges into master.

I'm thinking that I need to use `git whatchanged` and based on another question ([Bash script to extract filenames from git whatchanged](https://stackoverflow.com/questions/9371077/bash-script-to-extract-filenames-from-git-whatchanged)) perhaps

`git show --pretty="format:" --name-only HEAD^`

but at best I seem to be thinking I have to concoct a somewhat fragile script to parse various git outputs for particular refs falling within certain dates and then redirect those refs to other git commands to isolate what files were modified in those refs, and finally concat the results.

I just am shocked that this hasn't already been provided by git already as I feel it is a somewhat fundamental feature, particularly because, from the questions that I have mentioned above, git is not fully reproducing the wonderful advantages of `cvs diff -D "1 days ago"` and if CVS has something on git, then well, I've lost all faith in humanity.

Can someone prove me wrong? Is there a way to reliably query if any files in master have been updated, via a merge or commit, since a period of time?

**The Problem**

Here is what I did that led me here:

1. Make a number of commits to your repository and push them to origin
2. Now take the bare repository and copy it with `cp -r --preserve`
3. From this copied bare repository, execute `git clone copy_of_everything`
4. In `copy_of_everything` run `git diff --name-only master@{"5 day ago"} master` or however long its been since you made those commits in step 1.

You will find, at least I did, that the `git diff --name-only master@{"5 day ago"} master` is unable to find any commits not done since you performed the clone.

This is what seems so unacceptable. The logs are there telling me what I need to know in long-form, but no one or two commands that I am aware of can tell me which files have been modified since a certain date.

**Update 1**

sleske's comment seems to hit the nail on the head. `git diff --name-only master@{"5 day ago"} master`, being based on the reflog, is a bad idea because it's based on *local modifications* to the repository state.

So is there a nice alternative?

Also, kudos to User:qqx for pointing me in this direction with this question in the first place.

**Update 2**

And there is. And sleke's (now accepted) answer explains why.

In short, I needed to perform:

`git diff --name-only $(git log --until="1 days ago" -n1 --format=%H master ) master`

Faith in humanity restored.