Jeff King [off-list ref] writes:
On Wed, May 20, 2009 at 07:37:54PM -0400, Big Lebowski wrote:
quoted
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
--
Matthieu
Matthieu Moy <Matthieu.Moy <at> imag.fr> writes:
Jeff King <peff <at> peff.net> writes:
quoted
On Wed, May 20, 2009 at 07:37:54PM -0400, Big Lebowski wrote:
quoted
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
On Thu, May 21, 2009 at 08:08:01PM +0000, Ryan wrote:
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!)
Ah, OK, I missed that when reading your initial report. Matthieu's
suggestion is the correct one, then.
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.
Actually, you will find that "git rebase" is basically "format-patch |
am" under the hood, so you more or less did the same thing (but calling
rebase probably would have been a little more convenient).
-Peff