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.
There is a branch in this repo, corresponding to a product that I am interested in. I want to make a brand new git repository from this branch only, not really concerned about loss of history.
Is git remote add the solution? I want for both of these repositories to be on the same server.
Thoughts?
Navigate to the repository you just cloned. Pull in the repository's Git Large File Storage objects. Mirror-push to the new repository. Push the repository's Git Large File Storage objects to your mirror.
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.
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"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With