0

Stumbled across this gem: Export all commits into ZIP files or directories whose inital answer met my needs for exporting commits from certain branches (like develop for example) into separate zip files - all done via a simple, yet clever, one-liner:

git rev-list --all --reverse | while read hash; do git archive --format zip --output ../myproject-commit$((i=i+1))-$hash.zip $hash; done

In my version I replaced the --all with --first-parent develop.

What I would like to do now is make the filenames more useful by including the commit date and commit author in the filename. I've Googled around a bit, grokked the git archive documentation, but do not seem to find any other 'parameters' I could use that are readily available like $hash.

I'm guessing I will need to expand the loop and call up the relevant bits individually, save them into bash variables and pass them on to the output option with something like ${author}, unless anyone else knows a cleaner, simpler way to do this, or can point me to documentation or other examples where I could pull the needed info from other parts of git? Thanks in advance for any insights.

the digitalmouse
  • 223
  • 3
  • 25
  • 1
    Use `git show --format=… $hash` with different [placeholders](https://git-scm.com/docs/git-show#Documentation/git-show.txt-emnem) to extract information from the very commit. – phd Feb 11 '20 at 15:25
  • thanks for the tip! will give that a try. – the digitalmouse Feb 15 '20 at 07:50

0 Answers0