How to combine two branches from two different repositories in a single repository? How to combine two branches from two different repositories in a single repository? git git

How to combine two branches from two different repositories in a single repository?


You can treat another git repository on the same filesystem as a remote repo.

In the first, do the following:

git remote add <name> /path/to/other/repo/.gitgit fetch <name>git branch <name> <name>/master #optional

Now they're both branches in a single repository. You can switch between them with git checkout, merge with git merge, etc.


Your picture suggests that you don't really want to "combine the two repositories" so much as merge commits G and H in to repo1. You should be able to do something as simple as add repo2 as a remote to repo1 and fetch/pull the changes in.


I think Jim is right. Also bear in mind that if two commits do exactly the same patch/diff against the code, they will have exactly the same SHA1 hash. So A through E should have the same SHA1 in both repos, so it shouldn't be a problem to merge from one to the other, and keep the merged repo as the sole repo to move forward with.

You can setup on repo1 a tracking branch for repo2, and then keep them distinct that way, and delay the merge to whenever you want.