从子文件夹中Git多个子项目?

12 git github

我有多个项目,我想把它放到GitHub.com上.所有这些项目都在我当地的Git存储库中.我只有一个存储库,但是对于每个项目,我想要有一个GitHub项目.这样,项目就可以组织错误.

如何设置它以便管理起来并不困难?我是否需要重做我的存储库布局并在本地为每个项目创建新的git存储库?那将是真正的时间,我可能会失去Git的历史.

沃尔特

mip*_*adi 16

根据您的回购协议是如何组织的,您可以使用git filter-branch创建一个新的回购对每一个项目,保留历史为每个项目.

假设您当前的repo结构是这样的:

repo/
  project1/
    project1-file
  project2/
    project2-file
  project3/
    project3-file
Run Code Online (Sandbox Code Playgroud)

你可以先复制您的回购协议(git filter-branch 删除文件他们的历史,所以克隆原来的回购第一).然后,在您的克隆仓库中,您可以使用git filter-branch以下内容创建一个新的仓库(包含所有旧历史记录)project1:

$ git filter-branch --subdirectory-filter project1 HEAD
Run Code Online (Sandbox Code Playgroud)

现在,您的仓库将如下所示:

repo/
  project1-file
Run Code Online (Sandbox Code Playgroud)

它仍将包含project1/旧存储库中存储的所有文件的历史记录.

对每个项目重复该步骤,现在您将拥有三个独立的回购,其中包含相关项目的所有历史记录.


kub*_*ubi 5

如果我理解这个问题,你就有一个包含许多项目的大型回购.您希望将每个项目分解为单个回购而不会丢失历史记录.底线是肯定的,你必须重做你的存储库布局并为每个项目创建新的git存储库.但是,你不需要失去历史.

  1. 制作当前仓库的副本,每个子项目一份.
  2. 在每个新的repos中,删除除与该repo关联的项目之外的所有其他项目.

在破坏原始仓库之前,您仍然拥有所有历史记录,但现在每个项目都是它自己的存储库.

如果您不介意丢失历史记录,那么将每个项目放入其自己的git repo就像git init在项目目录中运行一样简单.这将为该项目创建一个新的仓库.