how to create a new git repository from an existing one

后端 未结 3 1039
渐次进展
渐次进展 2020-12-07 10:28

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.

相关标签:
3条回答
  • 2020-12-07 11:05

    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.

    0 讨论(0)
  • 2020-12-07 11:11

    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"
    
    0 讨论(0)
  • 2020-12-07 11:13

    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:

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

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

    0 讨论(0)
提交回复
热议问题