我有一个 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 1
和 Repo 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_1
的 submodule
url 指向相同的位置,当您在 submodule
之一中 git push
时Repo_1
或 Repo_2
的 code> 目录,您实际上是在将更改推送到同一个项目存储库。
由于 git
允许两个不同的 super 存储库中的相同 submodule
指向不同的修订,因此在两个 super 项目之间同步更改有一些问题。有关更多信息(例如如何推送、提交更改和更新 submodules
),我建议您查看:
关于visual-studio - 在另一个仓库中共享 git 仓库中的子项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017578/