GitHub存储库和本地开发结构

时间:2013-02-03 16:05:51

标签: .net git github

首先,我们所有的项目都是.Net C#项目。

我需要一些关于设置本地和存储库结构的最佳方法的建议。

我们有一个主项目,作为我们所有项目使用的核心库。我不一定希望有一个包含多个项目的存储库,但我确实希望我的其他项目可以访问主库的项目。我想将每个项目放在他们自己的存储库中以用于组织目的。

我知道在本地系统上应该做些什么来实现这一目标,但我想在开始设置项目之前获得社区意见。

更新

Bradley提示的内容类似,我采用了与此类似的结构:

All Projects Folder
     Core Project
     Another Project
     Yet another Project

使用GitHub for Windows,您可以使用Clone To功能将本地存储库放在主项目文件夹中。因此,在本例中,我将从GitHub for Windows中选择Remote Repository,右键单击要克隆的远程存储库并选择Clone To。我会选择“所有项目文件夹”来放置我的代码。这将为您创建文件夹和项目结构。然后,其他项目可以使用该结构中的相对路径相互引用。我发现在Visual Studio 2012中使用Git Source Provider有助于查看项目之间的所有挂起更改。

2 个答案:

答案 0 :(得分:1)

您可以create and publish a NuGet package退出此主项目,然后让其他项目只安装此NuGet。这样其他人也可以在他们的应用程序中使用这个常见的NuGet。

答案 1 :(得分:1)

假设您要将代码划分为多个存储库,将一个存储库作为另一个存储库的依赖关系的一种方法是使用git submodules

我个人发现子模块在日常使用中有点痛苦。 (例如,git checkout在切换分支时不会自动更新子模块;通常,开发人员在添加所有内容之前忘记git submodule update而无意中回滚了子模块。)

因此,我们更喜欢"约定优于配置"方法,并简单地克隆所有必要的存储库作为彼此的兄弟姐妹。当对两个repos进行更改时,您只需提交并推送两个repos,并假设其他开发人员正在跟踪两个repos中的master分支,并将同时拉出两个。

可以轻松编写将在新计算机上设置的bash脚本或批处理文件,或者在现有计算机上立即更新所有存储库。

有关更详细的示例,请参阅我的Sharing Code across Projects博文。