visual-studio - 在另一个仓库中共享 git 仓库中的子项目

标签 visual-studio git

我有一个 git 存储库,其中包含带有多个项目的 Visual Studio 解决方案。我有另一个 git 存储库(也是 VS),我想在第一个存储库中添加一个项目:

Repo 1:
Project_1
Project_2
Project_3

Repo 2:
Project_4
Project_5
Project_1 (Same as Project_1 above)

是否可以只与另一个 git 存储库共享 git 存储库中的一个项目?当我在第二个 repo 中工作时,我希望能够对属于第一个 repo 的项目进行提交/pull/推送,而当我打开第一个 repo 时,我希望能够获得对第一个 repo 所做的更改第二个仓库中的项目。

我查看了 git submodules 但我认为这对我没有帮助,因为我不想将共享项目从第一个 git 存储库中提取到一个单独的项目中。我想保持第一个 repo 完好无损......

最佳答案

我认为您可能对 git 存储库的结构感到困惑。我构建项目的方式是为每个项目创建一个存储库,然后将它们添加到 Repo 1Repo 2 super 项目。

图形化

Git                  # Main git project directory
  /Projects
    /Project_1       # Each one is its own Git repository
    /Project_2
    /Project_3
    /Project_4
    /Project_5

  /Repos             # The main repositories that utilize the projects
    /Repo_1          # The super project directory
      .gitmodules    # The .gitmodules file created by 'git submodules add'
        --> submodule with url=../../Projects/Project_1  # entry in .gitmodules
        --> submodule with url=../../Projects/Project_2
        --> submodule with url=../../Projects/Project_3
    /Repo_2
      .gitmodules
        --> submodule with url=../../Projects/Project_1
        --> submodule with url=../../Projects/Project_4
        --> submodule with url=../../Projects/Project_5

由于 Project_1submodule url 指向相同的位置,当您在 submodule 之一中 git pushRepo_1Repo_2 的 code> 目录,您实际上是在将更改推送到同一个项目存储库。

由于 git 允许两个不同的 super 存储库中的相同 submodule 指向不同的修订,因此在两个 super 项目之间同步更改有一些问题。有关更多信息(例如如何推送、提交更改和更新 submodules),我建议您查看:

  1. http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
  2. http://git-scm.com/book/ch6-6.html

关于visual-studio - 在另一个仓库中共享 git 仓库中的子项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017578/

相关文章:

每个分支的 Git 磁盘使用情况

wpf - 如何调试 Visual Studio 2012 实例设计时

c# - EntityFramework.dll 中出现“System.Data.Entity.Infrastructure.DbUpdateException”

c++ - MSVC linker error LNK2019 when reusing a base class in C++ 解决方案

git - 在 git 中保持未提交本地更改的实用工作流程是什么?

git - 如何使用 SourceTree 更新我的 fork 存储库?

c# - 如何在我的应用程序中集成 Visual Studio

android - 复选框 onchange 事件 android cordova visual studio 不工作

git reset --hard -q 产生关于空格的错误

git svn 迁移失败,svn 1.8