提问人:user10709800 提问时间:9/8/2023 更新时间:9/11/2023 访问量:65
单个克隆的 git 存储库占用多少内存?[已结束]
How much memory does a single, cloned git repo occupy? [closed]
问:
在纯粹在我的远程服务器上使用 git 进行版本控制之后,我现在希望使用 git 在我的远程和本地文件系统中进行版本控制。
到目前为止,我这样做的方法是:
- 创建一个远程裸存储库作为“保存”目录:
- 创建目录
mkdir /save
- 为此项目创建保存存储库Create a save repo for this project
mkdir /save/projectName
- 输入项目存储库并将其初始化为裸存储库
cd /save/projectName
git init --bare
- 在本地克隆远程保存存储库,添加、编辑和提交,然后推送回远程保存:
- 创建本地开发目录并输入
mkdir /webDev
cd /webDev
- 克隆此项目的远程保存 'git clone user@host:/save/projectName
- 添加文件,然后运行,编辑它们,然后提交 'git commit * -m “Update”。
git add *
- 将更改推送到远程保存存储库
git push origin master
- 将更新的保存存储库克隆到远程计算机上的开发存储库中:
- 进入服务器目录 和 development 子目录
/srv
/srv/dev
- 克隆远程保存的存储库
git clone /save/projectName
- 检查开发站点是否按预期工作,然后对生产目录重复 (3):
- 在生产目录中运行
git clone /save/projectName
/srv
这一切都很好,但我担心的是拥有 3 个具有相同内容的目录所占用的内存,最重要的是,对于多个项目,项目编号 N 将增加为 3*N。
我已经阅读了许多关于使用 git 的在线教程和网站,但是我无法清楚地遵循任何内容。经常有人谈论使用分支,但我还不想考虑分支 - 只是克隆、推和拉。
我认为理想情况下,我希望在我的本地机器上拥有具有动态 IP 的裸存储库,然后以某种方式将内容复制到远程机器开发和生产目录。这会将每个项目的 3 个目录减少到 2 个,这会更好,但我还没有找到一种方便地从动态 IP 地址获取的方法。/save
git clone
总而言之,我能想到的几个问题可以解决我遇到的问题:
克隆的 git 存储库是否占用与其原始文件等价物相同的内存空间?还是 git 以某种方式使内存大小更简洁?
有没有一种行业标准的方法来设置本地、远程开发和远程生产位置的流程,以解决内存问题?
有没有办法在我的本地机器上托管裸 git 存储库,然后以某种方式将它们移动到远程开发和生产位置?
如有上述问题的任何指示,或我可能有的误解,以及解释,将不胜感激。
答:
评论