Git keyword expansionΒΆ

We can archive the files using keywords defined in gitattributes by using the command git archive.

We archive files by:

git archive --format=tgz --worktree-attributes HEAD file1 file2 ...

The attributes are taken from the tree, and with the option --worktree-attributes in the checked out worktree.

Git also look at the repository local file $GIT_DIR/info/attributes

If the attribute export-subst is set for a file then git will expand several placeholders with the syntax $Format:PLACEHOLDERS$.

The place holders are defined in git log pretty formats

I use in my C source files:

/* @date   $Format: %ci$
 * @version Commit: $Format: %h$
 * Tree: $Format: %t$
 */

To exports the committer date %ci, the abbreviated tree hash <%t, and the abbreviated commit hash %h