Martin et al. Thanks for your help and sorry for ranting (also to Daniele Segato who replied off-list).... these things always happen when you have the least amount of time to deal with them!! Problem solved.... well bodged actually (just copied files which were all in one directory over to the correct branch).... but it will do. I shall be MUCH more careful in future :-) Howard (PS. I now even know what 'top-posting' is - but not why it's bad.) 2009/9/15 Howard Miller <howard@xxxxxxxxxxxxxxxxxxx>: > What's to stop me......... > > * The "wrong" branch just tracks a remote so I can just dump it once I > have this fixed - (delete it and recreate it?) > * after my 'reset' the files I have in my working copy (still the > wrong branch) should be the latest version ('git reset' does not > change the working copy I think?) > * So can I grab these files (they are mostly new), checkout the > correct version, and just overwrite the existing files? I'll loose > some history but not much and I don't care > > Seems too easy :-) > > 2009/9/15 Howard Miller <howard@xxxxxxxxxxxxxxxxxxx>: >> Martin, >> >> Got as far as applying the temporary patch and I now get a load of... >> >> Reversed (or previously applied) patch detected! Assume -R? [n] >> Apply anyway? [n] >> Skipping patch. >> 1 out of 1 hunk ignored -- saving rejects to file >> theme/onepointnine/local.css.rej >> The next patch would create the file theme/onepointnine/local.css, >> >> funnily I didn't think that file had anything to do with it, but when >> I changed branched I got >> >> T theme/onepointnine/local.css >> >> Not sure what the T means :-( >> >> H. >> >> 2009/9/15 Martin Langhoff <martin.langhoff@xxxxxxxxx>: >>> 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 >>> >> > -- 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