In order to create a new Git repository from an existing repository one would typically create a new bare repository and push one or more branches from the existing to the new repository.
The following steps illustrates this:
- Create a new repository. It must be bare in order for you to push to it. - $ mkdir /path/to/new_repo
$ cd /path/to/new_repo
$ git --bare init
 - Note: ensure that your new repository is accessible from the existing repository. There are many ways to do this; let's assume that you have made it accessible via - ssh://my_host/new_repo.
 
- Push a branch from your existing repository. For example let's say we want to push the branch - topic1from the existing repository and name it- masterin the new repository.
 - $ cd /path/to/existing_repo
$ git push ssh://my_host/new_repo +topic1:master
 
This technique allows you to keep the history from the existing branch.
Note: the new repository is effectively a new remote repository. If you want to work with the new repository you must clone it. The following will clone the new repo into a local working directory called new_repo:
$ git clone ssh://my_host/new_repo
In this example, when you clone the new repository you will see that the master branch is a copy of the topic1 branch of the old repository.