git branch "backup/$(git branch --show-current)/$(date +%s)" # do whatever you fancy git reset --hard "backup/$(git branch --show-current)/${thattimestampabove}"
the only thing that does keep a git object is having a ref that (directly or transitively) points to it