我有多个项目,我想把它放到GitHub.com上.所有这些项目都在我当地的Git存储库中.我只有一个存储库,但是对于每个项目,我想要有一个GitHub项目.这样,项目就可以组织错误.
如何设置它以便管理起来并不困难?我是否需要重做我的存储库布局并在本地为每个项目创建新的git存储库?那将是真正的时间,我可能会失去Git的历史.
沃尔特
根据您的回购协议是如何组织的,您可以使用git filter-branch
创建一个新的回购对每一个项目,保留历史为每个项目只.
假设您当前的repo结构是这样的:
repo/ project1/ project1-file project2/ project2-file project3/ project3-file
你可以先复制您的回购协议(git filter-branch
将删除文件和他们的历史,所以克隆原来的回购第一).然后,在您的克隆仓库中,您可以使用git filter-branch
以下内容创建一个新的仓库(包含所有旧历史记录)project1
:
$ git filter-branch --subdirectory-filter project1 HEAD
现在,您的仓库将如下所示:
repo/ project1-file
它仍将包含project1/
旧存储库中存储的所有文件的历史记录.
对每个项目重复该步骤,现在您将拥有三个独立的回购,其中包含相关项目的所有历史记录.
如果我理解这个问题,你就有一个包含许多项目的大型回购.您希望将每个项目分解为单个回购而不会丢失历史记录.底线是肯定的,你必须重做你的存储库布局并为每个项目创建新的git存储库.但是,你不需要失去历史.
制作当前仓库的副本,每个子项目一份.
在每个新的repos中,删除除与该repo关联的项目之外的所有其他项目.
在破坏原始仓库之前,您仍然拥有所有历史记录,但现在每个项目都是它自己的存储库.
如果您不介意丢失历史记录,那么将每个项目放入其自己的git repo就像git init
在项目目录中运行一样简单.这将为该项目创建一个新的仓库.