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


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.

Best 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.