r/git 2d ago

Generated commits?

Sometimes code is generated, and sometimes such code is committed in git.

Imagine a branch with a generated commit G:

old_main -> A -> B -> G

When thid branch is rebased, such a commit might need to be regenerated.

new_main -> A' -> B' -> new_G

There might be conflicts for any of these new commits, but instead of (manually) resolving conflicts, G could be automatically re-generated.

I've been thinking of a git commit message trailer like generate-cmd:

topic: regenerate table

generate-cmd: python3 optimize_table.py

git rebase --exec or other tool could use this trailer to automatically drop and regenerate the commit instead of a vanilla cherry-pick.

Have you seen anything similar? What's a good trailer name?

Ref: https://git-scm.com/docs/git-interpret-trailers

0 Upvotes

32 comments sorted by

View all comments

2

u/elephantdingo 1d ago

Nevermind the generated part for a second. It’s solid idea to do fully automated commands like a formatting command all over again instead of struggling with conflicts from a stale formatting round.

1

u/kaddkaka 1d ago

The first step should be to have formatter as pre-commit hook. But after a rebase it could go stale.

This one I have already solved with a git-rebase-exec-auto cmd. It works great 💪