Git multiple sub projects from sub folders?

后端 未结 2 1975
没有蜡笔的小新
没有蜡笔的小新 2021-02-13 21:07

I have multiple projects that I\'d like to put up onto GitHub.com. All of these projects are in my local Git repository. I have just one repository, but for each project, I\'d

相关标签:
2条回答
  • 2021-02-13 21:42

    Depending on how your repo is organized, you can use git filter-branch to create a new repo for each project, retaining history for each individual project only.

    Assuming your current repo structure is like this:

    repo/
      project1/
        project1-file
      project2/
        project2-file
      project3/
        project3-file
    

    You can first clone your repo (git filter-branch will remove files and their history, so clone your original repo first). Then, in your cloned repo, you can use git filter-branch to create a new repo (with all the old history) at the root of project1:

    $ git filter-branch --subdirectory-filter project1 HEAD
    

    Now, your repo will look like the following:

    repo/
      project1-file
    

    And it will still contain the history for all files that were stored under project1/ in the old repo.

    Repeat that step for each project, and you will now have three independent repos, with all the history for their relevant projects.

    0 讨论(0)
  • 2021-02-13 21:45

    If I'm understanding the question, you've got one large repo that contains a number of projects. You would like to break each of those projects out into individual repos without losing history. Bottom line is yes, you have to redo your repository layout and create new git repositories for each project. You don't need to lose history, though.

    1. Make a copy of your current repo, one copy for each sub project.
    2. In each of the new repos, delete all other projects except for the one associated with that repo.

    You'll still have all the history prior to breaking the original repo up, but now each project is it's own repository.

    If you don't mind losing your history, making each project into it's own git repo is as simple as running git init in the project directory. This will create a new repo for just that project.

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