![git/gitolite:包含多个小型项目的大型 git 仓库](https://linux22.com/image/1317172/git%2Fgitolite%EF%BC%9A%E5%8C%85%E5%90%AB%E5%A4%9A%E4%B8%AA%E5%B0%8F%E5%9E%8B%E9%A1%B9%E7%9B%AE%E7%9A%84%E5%A4%A7%E5%9E%8B%20git%20%E4%BB%93%E5%BA%93.png)
我对整个版本控制还很陌生,对 git 更是陌生。我最近在我的计算机上安装了 git,并将其设置在 NAS 服务器上。
但是,我有几个客户端文件夹,每个客户端文件夹有多个项目文件夹。
每个客户端文件夹都是一个巨大的仓库,包含其中的每个项目。
我想知道的是,有没有办法解决这个问题?例如:
NAS 是我的“原点”,并且安装了 gitolite
在 computer1 上,我拥有客户端文件夹中曾经创建过的每个项目文件夹(干净的分支),
在 computer2 中我做不是客户端分支的新签出(因为该分支中的所有项目都已完成,并且我不需要它的工作副本),但我做为该客户“newproject”准备一个全新的项目文件夹。
有没有办法从 computer2 提交并推送到 NAS repo?
或者也许有更好的方法来组织这一切?
答案1
Git 存储库的更好的组织方式是每个客户端项目有一个存储库(即,客户端文件夹中有多个存储库:每个客户端文件夹子目录中都有一个与项目根目录匹配的 .git)。
每个客户端都拥有一个巨大的仓库并不是一个好主意,尤其是:
- 如果该文件夹由彼此可以独立发展的项目组成。
- 如果总量很大(这意味着任何克隆都会很大)
如果其中一些项目链接在一起,你仍然可以将它们视为一个(父)仓库,并具有以下概念:子模块。