How to split a git repository
This page explains how to permanently split a git repository on Unix. It uses a simple dummy directory to show the process.
First, from the Unix command line, create a dummy repository containing two files:
mkdir dummy cd dummy echo "dummy.1" > dummy.1 echo "dummy.2" > dummy.2 git init git add . git commit -a -m "Initial commit"
You are now in the directory "dummy" and there are two files,
"dummy.1" and "dummy.2", containing their own names. Now go up to the
parent directory, and use git clone
to clone the "dummy"
repository into another repository:
cd ..
git clone dummy split
We only want "dummy.1" in repository "dummy", and we only want "dummy.2" in repository "split", so we remove the files, and commit:
cd dummy git rm dummy.2 git commit -m "Get rid of dummy.2" cd ../split git rm dummy.1 git commit -m "Get rid of dummy.1"
So far it looks as if the repositories are split. However, the command
git pull
in directory "split" will undo the
split. Therefore it is also necessary to remove the memory of the
clone with
git remote rm origin