Hi,
I need to bring in changes from one git repository (say repo-A) to other(say repo-B) preferably preserving the commit history. The repo-A contains few initial bad-commit points - includes files that should have been ignored (e.g temporary files generated at runtime) and large number of files got committed in one go. Also, the repo-A and repo-B don't have any common commit point with common set of files. Is there any way to get commits from repo-A to repo-B? I tried git cherry-pick, but I am not able to preserve history after resolving conflicts. Any comments or suggestions will be really helpful.
Thanks,
Shantanu.
On Thu, Jun 30, 2011 at 12:36:10PM -0500, Shantanu Pavgi wrote:
I need to bring in changes from one git repository (say repo-A) to
other(say repo-B) preferably preserving the commit history. The repo-A
contains few initial bad-commit points - includes files that should
have been ignored (e.g temporary files generated at runtime) and large
number of files got committed in one go. Also, the repo-A and repo-B
don't have any common commit point with common set of files. Is there
any way to get commits from repo-A to repo-B? I tried git cherry-pick,
but I am not able to preserve history after resolving conflicts. Any
comments or suggestions will be really helpful.
It sounds like you should use "git filter-branch" to edit the history in
repo-A into the shape you want (or even "git rebase -p -i" if the
history is simple and small), and then merge it into repo-B.
Note that this would mean throwing away the old repo-A history (which it
sounds like you want). If you want to include the full history, warts
and all, then simply merge repo-A into repo-B. Git doesn't have a
problem with merging histories with no common commits (though of course
you may get more conflicts, since there is no useful ancestor for a
3-way merge).
-Peff