我有一个git存储库,其中包含一个包含多个项目的Visual Studio解决方案。我有另一个git存储库(也是VS),我想在第一个repo中添加一个项目:
Repo 1:
Project_1
Project_2
Project_3
Repo 2:
Project_4
Project_5
Project_1 (Same as Project_1 above)
是否可以与另一个git存储库共享git repo中的一个项目?当我在第二个回购中工作时,我希望能够提交/拉/推到属于第一个回购的项目,当我打开第一个回购时,我希望能够获得我对第一个回购所做的更改项目在第二次回购。
我看过git submodules
,但我不认为这会对我有所帮助,因为我不想将第一个git repo中的共享项目提取到一个单独的项目中。我想保持第一个回购完好......
答案 0 :(得分:1)
我认为您可能会对git
存储库的结构感到困惑。我构建项目的方法是为每个项目创建一个存储库,然后将它们添加到Repo 1
和Repo 2
超级项目中。
<强>图形强>
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
由于submodule
的{{1}}网址指向同一位置,因此Project_1
git push
submodule
目录中的Repo_1
或Repo_2
您实际上是将更改推送到同一个项目存储库。
有两个关于在两个超级项目之间同步更改的问题,因为git
允许两个不同的超级存储库中的相同submodule
指向不同的修订版。有关更多信息(例如如何推送,提交更改和更新submodules
),我建议您结帐: