It feels oddly good to both implement a new feature for my wiki thing (last week) and decide that it's solid enough to commit and push it to the public Github source code (now). As always, actually making the git commit pushed me to write a few more comments and so on.

To answer your unasked question:

As always, magit for GNU Emacs is the bomb for getting me to make focused, careful commits with good commit messages. If you guessed that today's two commits were actually slammed together in the original change, you would be correct; magit's easy selective commits let me separate them out neatly.

@cks How do you do this? Rebase interactive, mark one commit for edit... unstage to where, then commit-amend, add new commit with the unstaged stuff (from where?)

@federicomena I usually make changes but don't commit them yet, then when I'm going to commit I do it selectively. If I was doing it with actual commits, I would probably try to commit on a (messy) development branch, then selectively pull changes into the real published one once they were finished.

(I don't know if magit can do selective commit-ammends or cherry-picks, but you can always just grab the raw changes from the branch & (re)do commits from them.)

@hirojin @cks it really is. I don't use it on the command line anymore; just from magit :)

@cks oh, yeah, I've done this on a separate branch, copying commits from another one when I want to split a big commit in the middle. Haven't really tried to do it in a single branch with interactive rebase.

One can stage individual hunks and then commit-ammend, so it should work.

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!