On Tue, Sep 15, 2009 at 2:10 PM, Howard Miller <howard@xxxxxxxxxxxxxxxxxxx> wrote: > Martin, > > Looked at gitk - yes there is definitely one more commit still on the > current (wrong) branch. > > I deleted the offending file and have now successfully switched to the > other (correct) branch. ok! so you have A - The commit you undid, and have in the temp patch. Note that this patch file is missing the file you've rm'd. B - A commit you haven't "undone" on the "wrong" branch X. and you are on branch Y so now... 1 - git format-patch Y^..Y # will export that patch B into a file for you. 2 - git am 0001-whatever-the-name-of-the-file.txt # patch B this may need conflict resolution - read the notes it prints! If it refuses to apply the patch, do "git am --skip" to indicate you won't use git-am no more for this, and try applying it with the patch utility. 3 - patch -p1 < your-patch-A.patch 4 - find and readd the file you rm'd earlier -- if you don't have another copy, we can get it from git reflog but that'll take extra steps :-) 5 - git commit # you're committing your patch A here Now, review with gitk to see that you have what you want to have there. If it's all ok... 6 - git checkout X 7 - git reset --hard # unstich that last stray commit -- hope the above helps. Git pros will see that the process could be much shorter :-) I chose this specific path because in exporting your patches and applying them again you can see each step. If we were to start again, and the branches are reasonably close to eachother (not 19_STABLE vs cvshead :-) ) then you can say - X has 2 bad commits that belong to Y, then 1 - gitk X & # open gitk to visualise the commits, send it to the background 2 - git checkout Y 3 - git cherry-pick X^ # takes the next-to-last commit from X and tries to apply it here - conflict resolution may be needed 4 - git cherry-pick X # same with the very last commit on X 5 - gitk # check that is all as you want it 6 - git checkout X 7 - git reset --hard X^^ # "rewind 2 commits" hth, m -- martin.langhoff@xxxxxxxxx martin@xxxxxxxxxx -- School Server Architect - ask interesting questions - don't get distracted with shiny stuff - working code first - http://wiki.laptop.org/go/User:Martinlanghoff -- 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