Skip to content

Instantly share code, notes, and snippets.

Last active December 19, 2022 15:23
  • Star 18 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
git hook for revision and branch version file
## Automatically generate a file with git branch and revision info
## Example:
## [master]v2.0.0-beta-191(a830382)
## Install:
## cp .git/hooks/post-commit
## cp .git/hooks/post-checkout
## cp .git/hooks/post-merge
## chmod +x .git/hooks/post-*
exec 1>&2
branch=`git rev-parse --abbrev-ref HEAD`
longhash=`git log --no-show-signature --pretty=format:'%H' -n 1`
shorthash=`git log --no-show-signature --pretty=format:'%h' -n 1`
revcount=`git log --no-show-signature --oneline | wc -l | tr -d ' '`
latesttag=`git describe --tags --abbrev=0 --always`
JSON="{\"branch\": \"$branch\", \"shorthash\": \"$shorthash\", \"longhash\": \"$longhash\", \"revcount\": \"$revcount\", \"latesttag\": \"$latesttag\"}"
Copy link

marslo commented Jul 16, 2021

the post-commit hook will do: update ${FILENAME} every time after git commit -am <message>, so the "new" ${FILENAME} actually won't be published into remote repository due to the status is modified (instead of staged).

So, is there any way that using git-hook to modify files in post-commit steps, and put changed file into staged status (for push)?

Copy link

Fyi: Slight bugfix update and added json output

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment