在 git 中管理多个项目的最佳方式是什么?

What is the best way of managing multiple projects in git?

我在 SVN 中有十个项目,它们彼此独立。现在我想迁移到 git。为了维护 git 中的所有项目,最好的方法是什么。 SVN 中的所有十个项目都不相互依赖,并且都使用不同的语言,如 Java、C#、...

我认为你应该将所有项目转换为 git。

如何操作:How do I migrate a SVN repo with history to a new git repo

如果需要本地安装,可以看看GitLab CE gitlab

如果您的项目是独立的、完全不相关的并且永远不会相互作用,并且无论如何也没有人需要拉取多个项目,那么只需将它们保留为 10 个存储库。

如果您有独立但相关的项目,您希望在 "solution" 中仍然创建 10 个存储库,但查看 Git-submodules,这样您就有一个与其他存储库相关的父存储库git 个存储库

方法一:

Cleanly Migrate Your Subversion Repository To a GIT Repository

方法二:

如果您有本地源代码并想添加到新的远程新 git 存储库而不需要先 'cloning' 远程存储库,请执行以下操作(在 bitbucket/github 等,然后向上推源)

  1. 创建远程仓库,获取URL如git://github.com/youruser/somename.git(或任何远程主机仓库服务)

  2. 在本地,在源的根目录中,

    git init

  3. 在本地,添加并提交您在初始回购中想要的内容(对于所有内容,

    git add .

    git commit -m 'initial commit comment')

  4. 使用名称 'origin' 附加您的远程仓库(就像克隆一样)

    git remote add origin [URL From Step 1]

  5. 向上推你的主分支(将主分支更改为不同分支的其他分支):

    git push -u origin master

我建议为每个项目创建一个单独的 git 存储库。

但是,如果您需要将存储库组合在一起,以便您的开发团队可以轻松检查整个技术堆栈,您可以使用 Git Sub Modules

git submodule add <Project1_url>
git submodule add <Project2_url>

这将创建一个 .gitmodules 文件,您可以根据需要编辑该文件

我们有一个类似的用例,其中 SVN 中存在不同的技术项目。我们遵循相同的结构并在 GIT 中创建了一个项目和一个存储库。然后,当各个团队开始处理他们的模块时,或者如果构建作业只需要从 git 存储库中进行特定检查,则使用稀疏检查。

以下是我对你的问题很清楚的事情:

  1. 所有项目都是独立的。
  2. 您可能有不同的用户组访问每个项目,您必须维护不同用户组的权限。

基于这些事情,请找到我的建议:

  1. 最好为 Git
  2. 中的每个项目维护一个单独的 repo
  3. 您可以限制在每个项目上工作的用户组
  4. 很容易提取与特定项目相关的代码,例如对于 C# 副本,您可以使用 C# 存储库在 visual studio 中获取它,对于 Java 副本,您可以使用 Java回购