On Friday 05 March 2010 01:49:21 Junio C Hamano wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: > > $ git branch branch2 <2> > > > > I take it that this is supposed to be "checkout -b branch2". > > > > $ git reset --keep start <3> > > ------------ > > > > <1> This commits your first edits in branch1. > > <2> This creates branch2, but unfortunately it contains the previous > > commit that you don't want in this branch. > > <3> This removes the unwanted previous commit, but this keeps the > > changes in your working tree. > > > > The above sequence is not very convincing. After you edited the second > > time, you create branch2 and that is presumably because you realized that > > the change in the work tree belongs to a separate topic. It would be a > > lot more natural to do this: > > > > $ git tag start ;# we do not have to tag, but just to make the > > remainder of the illustration easier to read... > > $ git checkout -b branch1 > > $ edit ;# do the work for the first topic > > $ git commit ;# and commit > > $ edit ;# start working more and then realize that the > > change belongs to a separate topic, and the previous > > commit is unrelated to that new topic > > $ git checkout -b branch2 start > > $ edit ;# continue working > > $ git commit ;# and conclude it > > > > so the example makes the use of "reset --keep" look artificial. > > Nah, what was I thinking. If I rephrase your side note <2> and <3> a > little bit, everything makes sense. Perhaps like so: > > <2> In the ideal world, you could have realized that the earlier > commit did not belong to the new topic when you created and switched > to branch2 (i.e. "git checkout -b branch2 start"), but nobody is > perfect. > > <3> But you can use "reset --keep" to remove the unwanted commit after > you switched to "branch2". > > And it becomes very clear that "reset --keep" is a sensible way to recover > from this mistake. No need to do "read-tree -m -u" followed by "reset" > anymore. > > Do you think I finally understood what "reset --keep" is about? Yes I think so. Thanks for that. I will rework the documentation patch according to your remarks and perhaps Jonathan Nieder's remarks too. Thanks both, Christian. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html