I haven't used Codex, but my process is the same with Claude Code as if I'm writing the code: branch off of main, tell it to write code. If I like it, commit the code. If I don't, revert the code, then tell it I reverted the code and it should do something different.
I commit on the branch about as often as I did when writing code manually: before I'm about to do something big or try something that might break other things.