Re: [Feature request] An easier way of rebasing if you just want to "force send" a file back to a previous commit
- From
- 1234dev <1234dev@protonmail.com>
- Date
- Jan 12, 2020, 20:41 UTC
- Message-ID
- <XqPlWEhzUXEI3NHYcd-yQnaXz7zMf6ycdm9hOZasaDWbWDBvmD3RCjGulYYsftUu6nbS79rvwZp1n1DNMqWgEW3UYWKo5linu1BsyHKScBw=@protonmail.com>
- In-Reply-To
- <20200112195646.GQ6570@camp.crustytoothpaste.net>
Very cool :-)
Thank you so much for making my life easier! Have a good day :-)
Best regards, Jonathan
Sent with ProtonMail Secure Email.
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Sunday, January 12, 2020 7:56 PM, brian m. carlson <sandals@crustytoothpaste.net> wrote:
Show 30 quoted lines
> On 2020-01-12 at 19:42:46, 1234dev wrote: > > > Hello! > > I'm pretty new to all of this, but I was wondering. Is there an easier way of rebasing if you just want to force send a file back to a previous commit? Rebasing can get quite tiresome in the long run. It's like 7 steps, and that's without the merge conflicts someone with my luck is guaranteed to run into. > > For instance, say I've made changes to a file. Those changes are too tiny and insignificant to make a new commit out of - they actually ought to be part of a commit I made last night. > > If there just was a way to cheat :) I'm aware it would rewrite my entire history but that's okay, I haven't shared my repo with anybody yet. Maybe something along the lines of "git rebase --off-she-goes <file> <hash>"? > > As opposed to "git stash && git rebase --interactive '<hash>^' && <change pick => edit> && <apply changes manually> && git add <file> && git commit --amend && git rebase --continue && git stash pop && <merge conflict that requires manual intervention> && git rebase --continue && git stash pop && <still a conflict> && rm <file> && git checkout <file> && <repeat the whole process> && <still a conflict> && <go to IRC and ask for help> > > The way I usually handle this is something like the following, although > I have some helper aliases that wrap this: > > git add <file> > git commit --fixup <hash> > > git stash # if necessary > GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash > > That does use the interactive machinery to apply the fixup commit, but > it also avoids prompting you to edit the interactive TODO list. It > doesn't avoid the merge conflicts which can occur, but it is (IMO) the > easiest way to go about it. > > If I'd like to edit the message, I use "git commit --squash" to add the > comments I'd like to add and I'm only prompted to squash together those > messages. > > -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > brian m. carlson: Houston, Texas, US > OpenPGP: https://keybase.io/bk2204