Re: Feature Request: `git commit --amend-to`
- From
Glen Choo <chooglen@google.com>
- Date
- Sep 28, 2021, 16:52 UTC
- Message-ID
- <kl6l1r58r6ba.fsf@chooglen-macbookpro.roam.corp.google.com>
- In-Reply-To
- <CAPUEspgr71t-thozi+Ez4xwxAkSJizsLuV=0TnROKZ85M6-kBg@mail.gmail.com>
Carlo Arenas <carenas@gmail.com> writes:
Show 6 quoted lines
> git commit --fixup reword:$SHA && EDITOR=true git rebase > --interactive --autosquash "$SHA^" > > granted it is not 1 command, but usually I find it useful to do > several of those and then one single > rebase at the end.
This is fairly similar to what I use, though I use this through the Magit Emacs plugin.
My concern with "--amend-to" is that the semantics aren't as simple as --amend.
With --amend, you know you're working on the branch tip, so it's relatively simple to discard the last commit and create a new one.
With something like --amend-to, you aren't just modifying a single commit, you are also introducing a potential merge conflict with every commit after that. You would have to provide some kind of facility for users to fix the merge conflicts. A command like git rebase --autosquash does a good job at communicating to users that they are actually doing a rebase and they need to be prepared to fix problems through a rebase UX. However, git commit --amend-to communicates none of that. A user who takes a cursory glance at git commit --amend-to has no idea that they are potentially comitting to a rebase.
I personally think the current UI makes sense given how Git works. I also wish that it were easier to do --amend-to, but I think the problem has more to do with how Git manages merges and conflicts and less to do with having shortcuts in the CLI.