我有一个大小> 2GB的git存储库。我们公司每年发布一个版本并支持其中的每一个版本5年,所以我需要5个不同分支和不同配置的存储库。
我只需要13GB的.git目录(没有源文件和其他库。
有没有办法共享.git存储库信息以节省空间?就像拥有大多数提交的中央文件夹和每个项目独有的小变更集一样?
答案 0 :(得分:4)
您应该查看git worktree
命令(git版本2.5.1或更高版本)。
例如:
# git worktree add <path> [<branch>]
$ git worktree add ../version-42/ origin/tag-v42
这将创建一个包含新工作目录的新文件夹
来自git-worktree文档
新工作目录链接到当前存储库,共享除工作目录特定文件(如HEAD,索引等)之外的所有内容。
这可以为您节省大量空间。 只记住一件事:你不能同时拥有两个工作目录(工作树)同一个分支。
其他信息
使用git worktree list
获取已注册工作树组及其各自分支机构的列表
使用git worktree prune
更新工作树列表(如果您删除了一个或多个)