Recovering from commit --amend in rebase --interactive
- From
Peter Krefting <peter@softwolves.pp.se>
- Date
- Jun 1, 2010, 09:27 UTC
- Message-ID
- <alpine.DEB.2.00.1006011022030.2352@ds9.cixit.se>
Hi!
I am a frequent user of rebase --interactive, and sometimes I do change a commit to "edit", which presents me with an already committed change, which I can fix up, and do "git commit --amend" on.
However, sometimes I get conflicts during rebase. In some cases I have already seen that conflict, so rerere handles it for me. I am still dropped out of rebase to manually add the fixes, though.
The problem now is that is way too easy to just do a "git commit --amend" like in the case above, and thus overwriting the previous commit unintentionally.
Is there an easy way of working around the issue?
Last time this happened to me, I *did* notice my mistake as I entered the editor, since it came up with the previous commit's message. However, as the commit message file was in a good shape, I found no way to break out of the amend. I ended up using "git reflog" to find out what I overwrote, then "git diff $commitid > savedpatch" to remember what the change that I mistakenly amended was, then "git checkout $commitid" and "git apply savedpatch" and "git add" on the changed files. What I am wondering if there is an easier way of recovering?
-- \\// Peter - http://www.softwolves.pp.se/