Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为具有不同配置的同一git存储库的多个副本节省空间_Git - Fatal编程技术网

为具有不同配置的同一git存储库的多个副本节省空间

为具有不同配置的同一git存储库的多个副本节省空间,git,Git,我有大小大于2GB的git存储库。我们公司每年发布一个版本,并且支持每一个版本5年,所以我需要5个具有不同分支和不同配置的存储库 我需要几乎13GB的.git目录(没有源文件和附加库) 是否有一种方法可以共享.git存储库信息以节省空间?例如,每个项目都有一个包含大多数提交和小更改集的中心文件夹?您应该查看git worktree命令(git版本2.5.1或更高版本) 例如: # git worktree add <path> [<branch>] $ git work

我有大小大于2GB的git存储库。我们公司每年发布一个版本,并且支持每一个版本5年,所以我需要5个具有不同分支和不同配置的存储库

我需要几乎13GB的.git目录(没有源文件和附加库)


是否有一种方法可以共享.git存储库信息以节省空间?例如,每个项目都有一个包含大多数提交和小更改集的中心文件夹?

您应该查看
git worktree
命令(git版本2.5.1或更高版本)

例如:

# git worktree add <path> [<branch>]

$ git worktree add ../version-42/ origin/tag-v42
#git工作树添加[]
$git工作树添加../version-42/origin/tag-v42
这将创建一个包含新工作目录的新文件夹

从文件中

新的工作目录链接到当前存储库,共享除工作目录特定文件(如HEAD、index等)之外的所有内容

这将为您节省大量空间。只有一件事要记住:您不能同时拥有两个具有相同分支的工作目录(工作树)


附加信息

使用
git worktree list
获取已注册的工作树及其各自分支的列表


使用
git worktree prune
更新工作树列表(如果您删除了一个或多个)

您应该查看
git worktree
命令(git版本2.5.1或更高版本)

例如:

# git worktree add <path> [<branch>]

$ git worktree add ../version-42/ origin/tag-v42
#git工作树添加[]
$git工作树添加../version-42/origin/tag-v42
这将创建一个包含新工作目录的新文件夹

从文件中

新的工作目录链接到当前存储库,共享除工作目录特定文件(如HEAD、index等)之外的所有内容

这将为您节省大量空间。只有一件事要记住:您不能同时拥有两个具有相同分支的工作目录(工作树)


附加信息

使用
git worktree list
获取已注册的工作树及其各自分支的列表


使用
git worktree prune
更新工作树列表(如果您删除了一个或多个)

您真的需要5个存储库或5个工作目录吗?这5个不同的存储库还是同一个存储库中的唯一标记?它是同一个存储库,只是不同的分支。我需要将它们分开,因为库和脚本是唯一的,出于各种原因而保留在git之外,并且还专门配置了IDE对于每个版本。你真的需要5个存储库或5个工作目录吗?这5个不同的存储库还是同一个存储库中的唯一标记?它是同一个存储库,只是不同的分支。我需要将它们分开,因为库和脚本是唯一的,并且由于各种原因而保留在git之外,还有IDE配置每一次发布都会被专门编辑。