【问题标题】:What is the best practice for sharing code between two TFS GIT projects?在两个 TFS GIT 项目之间共享代码的最佳实践是什么?
【发布时间】:2014-05-31 16:15:02
【问题描述】:

我们目前正在使用带有 GIT 的 TFS 2013,并为主要群体设置了不同的项目。问题是我有几个库需要与其他项目共享项目的不同分支。例如,Project1 和 Project2 使用通用版本,而 Project3 使用同一库的修改版本。简要概述如下:

项目1 -- 共享代码\branch1

项目2 -- 共享代码\branch1

项目3 -- 共享代码\branch2

共享代码项目 -- 共享代码\branch1 -- 共享代码\branch2

我当然希望能够根据需要在分支 1 和分支 2 之间来回合并更改。

到目前为止,我最好的想法是为每个分支创建具有本地 git 目录的共享代码项目,然后尝试在 TFS 中进行合并。然后每个项目将访问它需要的分支目录。这似乎相当混乱(尤其是跨多台开发人员机器)。

有什么建议或建议吗?谢谢。

【问题讨论】:

  • 您找到解决方案了吗?我遇到了同样的问题。

标签: git version-control tfs


【解决方案1】:

据我了解,Git for TFS 拥有 git 的所有核心功能。

因此,如果您假设结构如下,则您有项目P1P2,并且您有一个库L 和该库L' 的后代。如果P1 使用LP2 使用L'

处理此问题的Git 方法是将L' 管理为cloneL。因为您使用的是 DVCS,所以您可以使用 L 作为 L' 的上游存储库。这将允许您将L 的全部或部分更改引入L',而P2 所需的L' 的差异不会干扰P1

这基本上是 github forking 模型 found here。尽管这些说明是在考虑 github 的情况下编写的,但它们对任何 .git 存储库都有效。

此外,这类似于 linux 内核开发的工作方式。 vanilla 内核由kernel.org 维护,各种发行版(RedHat、Arch 等)的修改内核作为 fork 维护。分叉会定期与主线同步,并合并更改以支持发行版内核的功能。

【讨论】:

  • 它的价值:它不是基于 Windows 的 Git。但这是一个实现细节。
  • 好吧,公平地说,我们并没有过多地谈论我们在服务器端的 TFS 中使用的底层技术。 (这不是秘密,只是没那么令人兴奋)。我们还误写了我们自己使用 Git for Windows;所以这是我们自己并没有真正澄清的事情!
猜你喜欢
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 2014-07-05
相关资源
最近更新 更多