I have a remote git repository that really replaced everything we had in another older SCM. Many projects and products have been added to the repository over the years.
Pull down the branch like normal and then push the branch to a new repository that you have created using git init
. You would use code that looks something like:
git push url:///new/repo.git TheBranchFolder
This method also keeps all of your previous changes if that is a plus for the situation.
If you're not worried about losing history, do a git checkout mybranch
and then copy the directory contents to another folder. Within that folder, delete the .git folder and then:
git init; git commit -a -m "Imported from project Y"
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 topic1
from the existing repository and name it master
in 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.