Re: Getting Commits from One Repository to Another
Matthieu Moy <Matthieu.Moy <at> imag.fr> writes:
Show 35 quoted lines
>
> Jeff King <peff <at> peff.net> writes:
>
> > On Wed, May 20, 2009 at 07:37:54PM -0400, Big Lebowski wrote:
> >
> >> Essentially, when I came on a project, a git repository was made
> >> available to me (lets call that 'public_repo'). That repository was put up
> >> on an unfuddle account, as an initial check-in; it was not cloned from the
> >> repository they were working on (lets call that 'private_repo'). I wrote
> >> some code, and pushed it to the repository. Now that I guess they feel
> >> comfortable with me, they reveal to me the private_repo.
> >>
> >> How do I get my code from public_repo to private_repo?
> >
> > You could just repeat the push you made to public_repo to
> > private_repo.
>
> As I understand the situation, no, because the public repo was not a
> clone of the private one, but a fresh import (without history?).
> So, the ancestor of the commits of the OP do not exist in the private
> repository.
>
> But don't panic, "git rebase" will be able to replay your history on
> another branch. The commands to type will be along the lines of:
>
> cd public-repo
> git remote add private url-of-private-repo
> git fetch private
> # not sure about the exact syntax here:
> git rebase --onto private/master your-first-commit^ master
>
> and then perhaps
>
> git push private master
>
Thanks to both of you for your help. I tried Peff's suggestion last night, and could not get it to work. Matthieu is correct that the public repo was not a clone but a fresh import. Furthermore, I discovered that work had been done between the last pull from private the the import into public. (Ugh!)
Anyway, before I saw Matthieu's post (away from internet, which is so rare these days), I managed to succeed by using git format-patch on the commits that I needed, and then used git am on the private repo. There was one conflict, but I was able to resolve it.
Hopefully I'm not faced with this problem again, but if so, I'll try Mattieu's suggestion.
Thanks, Ryan