4

我想将我的团队从使用 TFS 进行版本控制转移到 git。

有什么理由我不应该做以下事情:

  1. 使用 git-tfs 创建中央 git 存储库
  2. 让每个开发人员克隆中央存储库,从中提取并推送到它
  3. 然后只从中央仓库更新 tfs?

谢谢!

4

3 回答 3

3

使用 git-tfs 创建中央 git 存储库

这可能很危险,因为 TFS 有一个包含所有内容的中央存储库。 生成的 git repo 最终可能是一个巨大的(不容易克隆)

我建议制作几个git-tfs以创建几个较小的Git 存储库。

于 2012-01-13T07:33:05.220 回答
1

由于 Git 和 TFS 中的交互,git-tfs 并不完美(由于 Git 的主要特征是一旦创建就无法修改提交并且 git-tfs 不起作用使用裸存储库),将中央 Git 存储库放在 TFS 前面并不简单......

我想你所有的团队都会使用这个工作流,否则你可能会停止思考这样做的想法(由于合并冲突,你必须管理)......

因为 git-tfs 不适用于裸存储库,所以您最终会得到实际上应该同步的 2 个 git 存储库。您推送的第一个(裸机)和与 TFS 交互的第二个(不是您使用 git-tfs 的裸机)。

然后,您有 2 个选项:a)即使您有多个 git 提交(使用 git-tfs 'checkin' 命令),您也接受在 TFS 上只有一个提交(使用 git-tfs 'checkin' 命令)b)您想在 TFS 中复制每个 git 提交(使用git-tfs 'rcheckin' 提交)

第一种情况 a) 不是更好,但使用一些 scipts 和 git 钩子更容易解决,因为只有新的 git commit 在两个存储库之间同步。

第二种情况 b) 对我来说是唯一可以接受但更难解决的情况,因为当您使用 git-tfs 'rcheckin' 命令同步 git 存储库时,对于每个 git 提交,都会创建一个新的并且同步脚本将写起来要困难得多(我什至不知道是否可以解决所有合并冲突)。我开始编写这些脚本,但因为不值得付出努力而停止了(尤其是现在 Visual Studio 2012 解决了每次重新加载解决方案文件时的重新加载问题)。如果你想这样做,下面帖子中的脚本是从哪里开始的一个很好的步骤......

总之,我认为这样做不值得。您可以使用 git-tfs 找到本地工作流程,这非常简单,并且不需要 git 中央存储库...

但是如果你仍然想要一个 Git 中央存储库,你可以查看这篇文章(http://sparethought.wordpress.com/2012/08/23/my-environment-for-day-to-day-work-with- git-tfs/)的混合方式(提交到 TFS 并从 git 获取)似乎有效。

于 2012-12-13T14:13:06.610 回答
0

Team Foundation Server 2013 现在支持将 Git 作为团队项目的源代码控制存储库,并且 Visual Studio Tools for Git 提供嵌入在 Visual Studio 中的 Git 访问(2012 插件,2013 随附)。

于 2014-02-14T12:20:35.363 回答