C# 如何在单独的Git存储库中维护基本代码?
首先,我对VSTS和Git还不熟悉,所以如果我的术语弄糊涂了,我深表歉意 问题 我的情况是,我有一个VS/C#项目(称为“PluginBase”),本质上就是插件的“起始模板”代码。历史上,每当我想为特定客户创建新的“定制/衍生”构建时,我都会复制PluginBase项目代码 我希望能够做到的是,当bug修复得到解决并将功能添加到PluginBase项目时,我希望能够选择将这些更改迁移到一个或多个“定制/衍生”版本。同样,如果这个bug是在开发“定制/派生”构建时发现的,我想将它迁移回PluginBase插件 思想 从我的研究中,我发现了一些实现目标的“可能”方法,但我不确定这些方法中哪种(如果有的话)是合适的C# 如何在单独的Git存储库中维护基本代码?,c#,git,visual-studio-2015,azure-devops,C#,Git,Visual Studio 2015,Azure Devops,首先,我对VSTS和Git还不熟悉,所以如果我的术语弄糊涂了,我深表歉意 问题 我的情况是,我有一个VS/C#项目(称为“PluginBase”),本质上就是插件的“起始模板”代码。历史上,每当我想为特定客户创建新的“定制/衍生”构建时,我都会复制PluginBase项目代码 我希望能够做到的是,当bug修复得到解决并将功能添加到PluginBase项目时,我希望能够选择将这些更改迁移到一个或多个“定制/衍生”版本。同样,如果这个bug是在开发“定制/派生”构建时发现的,我想将它迁移回Plugi
- 分支机构
- 似乎是常用的方法,也许是“最好的”,但是
- 意味着所有代码必须在同一个存储库中?(否则就不能“樱桃采摘”——我宁愿避免,因为这可能并不总是可能的
- Git子模块
- 当项目共享一个公共的“库”(不是从同一个代码库派生)时,似乎更适合
- 还不确定Visual Studio是否完全支持此功能
- 樱桃采摘
- 从一个存储库到另一个存储库似乎不可能这样做
- Git补丁
- Visual Studio似乎还不支持此功能
非常感谢!:) Git分支绝对是一条必由之路。代码确实必须在同一个存储库中,git存储更改集,为了应用更改集,git必须知道代码路径分裂后发生了什么,否则它无法替换正确的代码行
为每一次向客户推出一个版本创建一个分支,然后您就可以在不同的分支之间进行挑选。Git分支无疑是一条必经之路。代码确实必须在同一个存储库中,git存储更改集,为了应用更改集,git必须知道代码路径分裂后发生了什么,否则它无法替换正确的代码行
为每次向客户推出一个版本创建一个分支,然后您可以在不同的分支之间进行挑选。为什么要避免将所有代码都放在同一个存储库中?正如@prof1990所说。我曾经在不同的存储库中定制过相同代码的版本,但这并不好。当它们是同一存储库的分支时,生活就简单多了。“同一存储库的分支”在git中不是一个东西。也许你是说叉子?至少还有一种方法。您可以有多个远程存储库。示例:您有一个基本模块“SRC”;将存储库转移到“A”并下载它。“A”的本地副本中可以有多个源。之后,将'SRC'添加到'A'作为辅助存储库。更改“SRC”时,请在“a”中使用“fetch all”。现在,您可以将任何分支从“SRC”合并到“A”。在这种情况下,即使是樱桃采摘应该工作,但我没有测试它。唯一的问题是,您需要使用GIT服务器。@谢谢您的建议。我希望避免将所有代码放在一个地方的原因是,我可以将“特定于客户”的代码放在一个存储库中,而将核心代码放在另一个存储库中。但看起来我可能不得不重新考虑这个问题。另外,我最初认为我应该对每个客户项目从基础项目中“分叉”(比如Github),并使用拉请求来来回推送提交。然后我意识到“Fork”是GitHub的一个特性,目前在VST中不存在。为什么要避免所有代码都在同一个存储库中?@prof1990是怎么说的。我曾经在不同的存储库中定制过相同代码的版本,但这并不好。当它们是同一存储库的分支时,生活就简单多了。“同一存储库的分支”在git中不是一个东西。也许你是说叉子?至少还有一种方法。您可以有多个远程存储库。示例:您有一个基本模块“SRC”;将存储库转移到“A”并下载它。“A”的本地副本中可以有多个源。之后,将'SRC'添加到'A'作为辅助存储库。更改“SRC”时,请在“a”中使用“fetch all”。现在,您可以将任何分支从“SRC”合并到“A”。在这种情况下,即使是樱桃采摘应该工作,但我没有测试它。唯一的问题是,您需要使用GIT服务器。@谢谢您的建议。我希望避免将所有代码放在一个地方的原因是,我可以将“特定于客户”的代码放在一个存储库中,而将核心代码放在另一个存储库中。但看起来我可能不得不重新考虑这个问题。另外,我最初认为我应该对每个客户项目从基础项目中“分叉”(比如Github),并使用拉请求来来回推送提交。然后我意识到“Fork”是GitHub的一个特性,目前还没有出现在VST中。似乎大家都一致认为这是推荐的方法(而且可以减少麻烦!)。再次感谢大家的建议!:)似乎大家都一致认为这是推荐的方法(而且可以减少麻烦!)。再次感谢大家的建议!:)