[英]Git - how best to store multiple repositories inside one master repository?
我正在将许多项目移动到GitHub中的私有存储库中。 其中很多是不再积极使用的项目。 因此,我宁愿每个项目都没有专用的存储库 - 我想把它们全部归为一个'Deprecated Projects'存储库。 我想这样做,并保持每个项目的历史。
我已经尝试将项目目录及其.git目录放入主要的Deprecated Projects存储库中,但这似乎不起作用 - 只有该目录实际上似乎在主存储库中被跟踪/版本化,但没有它的文件。
在这种情况下,我可以选择的最佳选择是什么? 我已经尝试将子目录/项目中的.git目录重命名为.git-directory,这似乎消除了问题 - 项目中的所有文件都被正确地添加到主存储库中。 如果这确实可以完全按照我的意愿工作,那么这将是一个可接受的解决方案 - 只需要将.git-directory文件夹重命名为.git,如果我确实想要将项目移出'Deprecated Repositories'仓库,并开始积极发展它。 如果有人能够确认这种方法是否合适,或者是否可能导致问题,那将非常有用。
我很新,所以有关此的任何信息将不胜感激!
使用子树合并。
子树合并允许您保留每个项目的历史记录,最新的提交将每个项目放在一个单独的目录中。 如果所有项目都处于非活动状态,这是理想的
您可以像往常一样在gitk
历史记录,并保留SHA-1哈希值。
假设您拥有master-repo
repo中的master-repo
以及要在项目中合并的project
。 以下是步骤:
cd master-repo git remote add project1 ../project1 git fetch project1 git merge -s ours --no-commit project1/master git read-tree --prefix=project1 -u project1/master git commit -m "Added project 1"
换一种说法,
请注意,除了“master”之外,这不会保留项目中的分支。 您可以通过将它们放在其他子目录中来保留它们,或者您可以跳过read-tree
步骤并只进行合并提交而不实际从这些分支引入文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.