单个克隆的 git repo 占用多少内存?

问题描述 投票:0回答:1

在纯粹在远程服务器上使用 git 进行版本控制之后,我现在希望使用 git 跨远程和本地文件系统进行版本控制。

到目前为止,我的做法是:

  1. 创建一个远程裸存储库作为“保存”目录:
  • 创建目录
    mkdir /save
  • 为此项目创建一个保存存储库
    mkdir /save/projectName
  • 输入项目仓库
    cd /save/projectName
    并将其初始化为裸
    git init --bare
  1. 将远程保存仓库克隆到本地,添加、编辑和提交,然后推送回远程保存:
  • 创建本地开发目录
    mkdir /webDev
    并进入
    cd /webDev
  • 克隆本项目的远程保存`git clone user@host:/save/projectName
  • 添加文件,然后运行
    git add *
    ,编辑它们,然后提交 `git commit * -m "Update."
  • 使用
    git push origin master
  • 将更改推送到远程保存存储库
  1. 将更新的保存存储库克隆到远程计算机上的开发存储库中:
  • 进入服务器目录
    /srv
    ,以及开发子目录
    /srv/dev
  • 使用
    git clone /save/projectName
  • 克隆远程保存的存储库
  1. 检查开发站点是否按预期工作,然后对生产目录重复 (3):
  • 在生产目录下运行
    git clone /save/projectName
    /srv

这一切都工作正常,但我担心的是拥有 3 个具有相同内容的目录所占用的内存,最重要的是,对于多个项目,项目编号 N 的内存将增加为 3*N。

我读过很多关于使用 git 的在线教程和网站,但是我无法清楚地理解。人们经常谈论使用分支,但我还不想考虑分支 - 只是克隆、推和拉。

我想我理想情况下希望在本地计算机上拥有动态 IP 的裸

/save
存储库,然后以某种方式将内容复制到远程计算机的开发和生产目录。这会将每个项目的 3 个目录减少到 2 个,这会更好,但我还没有找到一种方法可以方便地从动态 IP 地址
git clone

总而言之,我能想到的几个问题可以解决我遇到的问题:

  1. 克隆的 git 存储库是否与原始文件占用相同的内存空间?或者 git 是否以某种方式使内存大小更简洁?

  2. 是否有一种行业标准方法来设置本地、远程开发和远程生产位置的进程,从而解决内存问题?

  3. 有没有办法在我的本地计算机上托管裸 git 存储库,然后以某种方式将它们移动到远程开发和生产位置?

任何有关上述问题的指示,或我可能有的误解,以及解释,将不胜感激。

git memory-management remote-server production-environment static-ip-address
1个回答
0
投票

据我所知,不存在“内存”问题。只是磁盘空间问题。

通常的工作流程是远程的。默认情况下,工作树不会被推送修改。

最佳实践是远程 裸存储库,带有

post-receive
钩子,可以配置为执行您需要的任何命令。

就像转到您的实际存储库(开发存储库或产品存储库,具体取决于远程)并执行

git pull
(根据您从本地开发环境推送到裸存储库的提交来更新工作树。

© www.soinside.com 2019 - 2024. All rights reserved.