针对多个项目和非开发人员的 git 工作流程的建议
Suggestions for git workflow for multiple projects and non-developers
我有一个有趣的用例,我认为 git 可以提供帮助,但我不知道如何组织这样的存储库。我们有一个小团队(4-6 名程序员)负责编写从开发 > 暂存 > 生产阶段移动的脚本和小程序。我们团队中没有人有任何使用 VCS/DVCS 的经验,现在,版本控制由本地计算机上的文件名约定管理,生产代码位于中央服务器上。
在接下来的 6 个月里,我们将从本地开发环境(每个程序员在他们的本地计算机上都有许多开发工具 运行)转移到中央服务器模型。这种中央服务器模型还要求我们的程序员将他们的文件托管在服务器上,而不是本地。我们希望在迁移的同时转向(任何类型的)VCS。
所以一些细节:
- 生产代码可以是项目特定的或更通用的,并由多个程序员使用
- 基于项目的代码可以是单个文件或少量文件(因此从这个角度来看,拥有单独的 git 存储库效率低下)
*两个程序员不太可能需要同时处理同一个文件
- 我们的工作流程应该包含开发、暂存和生产代码
- 我们的程序员可能偶尔需要访问开发代码,例如有人去度假时(但我想这可以解决)
除了我自己项目的非常简单的本地回购外,我没有任何使用 git 的经验。根据我一直在阅读的内容,git 重量轻且足够灵活以适应各种配置。
有什么建议吗?
一个简单而安全的解决方案是使用 3 个不同的 git 存储库。
- 回购 1:
Production
- 回购 2:
Staged
- 回购 3:
Tools
Production repo: Production
repo 应该被用作主要的代码库,并且只允许维护者访问它。这个 repo 应该像这样配置:
git config --local remote.staged <path/to/staged/repo>
此配置将允许生产维护者执行简单的 git pull staged master
将代码从 Staged
存储库获取到 Production
存储库。
Staged repo: Staged
仓库的 master
分支可以用作 "Staged code",其他分支可以用作 "Development code".
Tools repo:此外,Tools
repo 应该用作开发人员使用的通用工具的存储库。理想情况下,Tools
repo 中的每个工具本身应该是一个 git-repo 子模块,但我猜这会使 repo 有点复杂。
注意这些存储库(主要是 Staged
和 Production
)基本上包含您的业务,因此它们应该非常干净和方便。因此,请在 Production
存储库中保留所需的最少但足够的代码。并尝试对 Staged
存储库进行同样的操作(强度可能稍低)。
我有一个有趣的用例,我认为 git 可以提供帮助,但我不知道如何组织这样的存储库。我们有一个小团队(4-6 名程序员)负责编写从开发 > 暂存 > 生产阶段移动的脚本和小程序。我们团队中没有人有任何使用 VCS/DVCS 的经验,现在,版本控制由本地计算机上的文件名约定管理,生产代码位于中央服务器上。
在接下来的 6 个月里,我们将从本地开发环境(每个程序员在他们的本地计算机上都有许多开发工具 运行)转移到中央服务器模型。这种中央服务器模型还要求我们的程序员将他们的文件托管在服务器上,而不是本地。我们希望在迁移的同时转向(任何类型的)VCS。
所以一些细节:
- 生产代码可以是项目特定的或更通用的,并由多个程序员使用
- 基于项目的代码可以是单个文件或少量文件(因此从这个角度来看,拥有单独的 git 存储库效率低下) *两个程序员不太可能需要同时处理同一个文件
- 我们的工作流程应该包含开发、暂存和生产代码
- 我们的程序员可能偶尔需要访问开发代码,例如有人去度假时(但我想这可以解决)
除了我自己项目的非常简单的本地回购外,我没有任何使用 git 的经验。根据我一直在阅读的内容,git 重量轻且足够灵活以适应各种配置。
有什么建议吗?
一个简单而安全的解决方案是使用 3 个不同的 git 存储库。
- 回购 1:
Production
- 回购 2:
Staged
- 回购 3:
Tools
Production repo: Production
repo 应该被用作主要的代码库,并且只允许维护者访问它。这个 repo 应该像这样配置:
git config --local remote.staged <path/to/staged/repo>
此配置将允许生产维护者执行简单的 git pull staged master
将代码从 Staged
存储库获取到 Production
存储库。
Staged repo: Staged
仓库的 master
分支可以用作 "Staged code",其他分支可以用作 "Development code".
Tools repo:此外,Tools
repo 应该用作开发人员使用的通用工具的存储库。理想情况下,Tools
repo 中的每个工具本身应该是一个 git-repo 子模块,但我猜这会使 repo 有点复杂。
注意这些存储库(主要是 Staged
和 Production
)基本上包含您的业务,因此它们应该非常干净和方便。因此,请在 Production
存储库中保留所需的最少但足够的代码。并尝试对 Staged
存储库进行同样的操作(强度可能稍低)。