What is best practice for 'git reset'?

[email protected] (James E Keenan)
Newsgroups perl.module-authors
Message-ID <[email protected]>
I am maintainer of a CPAN distribution whose most recent official 
release is version 2.12.

Since 2.12 was published, we have made the following development releases:

2.12_001
2.12_002
2.12_003
2.12_004

In the git repository, we have tags for:

2.12_002
2.12_003
2.12_004

(Somehow 2.12_001 was overlooked or has not yet been set.)

I now realize that much of the code (mostly tests, but some source) 
added in 2.12_003 and 2.12_004 is conceptually flawed.  For other 
developers and myself to treat 2.12_004 as the starting point for future 
development would not be fruitful.

What I would like to do is to go back to 2.12_002 and start development 
anew from there -- but without pretending that 2.12_003 and 2.12_004 
were never released.  I would like 2.12_005 to be equivalent to 2.12_002 
but with only very safe, minor touchups.

Would the following be the recommend sequence of git commands?

$ git checkout master
$ git checkout -b start-anew
$ git reset --soft 2.12_002
$ git commit -m "Rewind to tag 2.12_002"
# hack, hack, hack
$ git add ...
$ git commit -m "Slight touchups to what was 2.12_002"
$ git checkout master
$ git merge start-anew
$ git tag "2.12_005"

Thank you very much.
Jim Keenan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.