2010-04-03 204 views
6

我有两个不同的.net项目,托管在github上。在两个不同的git项目之间共享代码

我想为这两个项目创建一个共享的“commons”库。

我应该如何构建我的存储库以促进这种共享?

理想情况下,一个项目中这个公共库的更改很容易推送到另一个项目中。我更愿意从两个项目(在Visual Studio中)保持代码本身的可编辑性,而不是将其作为库包含在内。是否有最佳做法?

回答

6

您可以使用Git的子模块:https://git-scm.com/book/en/v2/Git-Tools-Submodules

+0

你在'git submodule add path-to-shared-repository' in each repository。将创建一个具有共享存储库名称的子目录。这个问题在这里是相关的:http://stackoverflow.com/questions/1462754/what-is-the-advantage-of-using-git-submodules-over-having-a-repo-inside-another – 2016-04-04 04:04:43

+1

这太奇怪了。我只想修复一个断开的链接。我做不到,因为它太小,不要问我为什么。我不知道要添加什么,因为我不知道子模块。所以,我添加了一个句子,以便我可以修复那个断开的链接。它被接受了。后来,当我试图用一些更有用的东西代替无用的句子时,它被拒绝了。所以,我们留下了那无用的句子。 – 2016-04-04 04:11:58

0

Git的子模块可能不是你的答案。看到这个博客文章进一步的细节:http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/

+0

关于git-subtree(来自您的参考):缺点是所有子项目文件都存在于父存储库中,这意味着您放弃了最初拆分项目存储库的一些原因:拥有一个规范存储库对于给定的一组共享代码。如果有人对子项目进行了更改,他们可以将其与其他更改本地合并,但如果他们想要与项目共享,他们必须将该更改从项目中明确分离出来。 – 2016-05-27 15:16:01

+0

但是,我同意其他一些选项https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/也许更好。 – 2016-05-27 15:21:11

相关问题