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

git

Solution

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/.git
git 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.

Problem

The structures of my Git repositories look like this: ``` A-B-C-D-E-F # master branch in separate repo1 A-B-C-D-E-G-H # master branch in separate repo2 ``` A-H are simple commits. As you can see the repositories are related (repo2 is a fork of repo1). I'm trying to combine these two repositories in one. Afterwards the single repository should have the following structure: ``` A-B-C-D-E-F # master branch of previous repo1 \ \ G-H # master branch of previous repo2 ``` I've already spent a lot of time reading the Git User's Guide and so on. However, this (special) case of use doesn't seem to be documented anywhere.

Original source