我想将我的团队从使用 TFS 进行版本控制转移到 git。
有什么理由我不应该做以下事情:
- 使用 git-tfs 创建中央 git 存储库
- 让每个开发人员克隆中央存储库,从中提取并推送到它
- 然后只从中央仓库更新 tfs?
谢谢!
我想将我的团队从使用 TFS 进行版本控制转移到 git。
有什么理由我不应该做以下事情:
谢谢!
使用 git-tfs 创建中央 git 存储库
这可能很危险,因为 TFS 有一个包含所有内容的中央存储库。
生成的 git repo 最终可能是一个巨大的(不容易克隆)
我建议制作几个git-tfs
以创建几个较小的Git 存储库。
由于 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 获取)似乎有效。
Team Foundation Server 2013 现在支持将 Git 作为团队项目的源代码控制存储库,并且 Visual Studio Tools for Git 提供嵌入在 Visual Studio 中的 Git 访问(2012 插件,2013 随附)。