Retrieving logs matching pattern for all time.
From: Jeremy Nickurak <hidden>
Date: 2016-06-15 22:51:58
I have a glob pattern of files, and I'd like to get git logs for every commit that touched those files. 'git log filesmatchingglob*' is pretty close. Unfortunately, because the * is interpreted by bash, it doesn't catch logs for files that don't exist anymore. Protecting the * from bash was my next thought, but that doesn't seem to help:
user@host:~$ mkdir something user@host:~$ cd something user@host:~/something$ git init Initialized empty Git repository in /home/nickuj/something/.git/ user@host:~/something$ echo hello > hello.txt user@host:~/something$ git add hello.txt user@host:~/something$ git commit -m hello hello.txt [master (root-commit) ca4b223] hello 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 hello.txt user@host:~/something$ git log -- 'hel*' user@host:~/something$
IE, git doesn't seem to interpret globs itself in patterns. http://stackoverflow.com/questions/543346/git-list-all-the-files-that-ever-existed suggests a means to get a list of all files that ever existed, and I could certainly iterate across that, find the files that match the pattern, and then run git-log against that.... but it seems like a problem somebody's already solved more elegantly. Any thoughts? -- Jeremy Nickurak