From: Jonathan del Strother Date: Thu, 10 Jan 2008 13:31:59 GMT Subject: Re: Revert git push Message-ID: <57518fd10801100531v6f6aef85k4b1b875c6f16aeba@mail.gmail.com> In-Reply-To: <6zve61q0t3.fsf@odpc25.int.ondemand.co.at> On Jan 10, 2008 1:15 PM, Markus Korber wrote: > Hi, > > I've got two local git repositories, linux and mplayer, where I push to > from a local directory. Now I accidentally pushed from mplayer into the > linux repository (via a not updated URL[1]). Is it somehow possible to > revert this push if nobody has pushed something since my last pull from > the linux repository? > > (Or can I just copy the .git/objects/ directory over to the repository?) > > ,----[ .git/remotes/mplayer [1]] > | URL: /prj/gitroot/linux > | Push: +master:master > `---- > > ,----[ git push mplayer ] > | updating 'refs/heads/master' > | from 94545baded0bfbabdc30a3a4cb48b3db479dd6ef > | to 9085d919f7954ad629447157f054e55230513936 > | Generating pack... > | Done counting 3240 objects. > | Deltifying 3240 objects... > | 100% (3240/3240) done > | Writing 3240 objects... > | 100% (3240/3240) done > | Total 3240 (delta 774), reused 0 (delta 0) > | refs/heads/master: 94545baded0bfbabdc30a3a4cb48b3db479dd6ef -> 9085d919f7954ad629447157f054e55230513936 > `---- You can push again to revert your original push, just specifying a different ref to push. Something like this ought to work : git push -f mplayer 94545bade:master which will update the remote 'master' branch with commit 94545bade, which is what it was before your accidental push Jon