使用TFS+GIT实现分布式项目管理
前言
GIT是近来很流行的一种版本控制系统,是Linux内核之父Linus Torvalds为了管理Linux内核的开发而开发的一种开源的版本控制工具。
GIT相比传统的版本控制工具最大的优点是实现了分布式项目管理,开发者可以在本地做版本控制,极大的提高了开发人员在项目实施过程中的自由度。
GIT的分支功能同样强大。使用传统的版本控制工具,对于已经上线的项目的维护和项目新阶段的开发两个过程间的同步是非常让人头痛的事情,而GIT的分支可以很好的解决这个问题。
为了保证项目的顺利实施,使用GIT可以创建不同的分支,如online分支、production分支、development分支等,项目新阶段的开发在deveopment分支中进行,而对于已经上线的维护性的开发可以在production分支中进行,当production中的维护性的开发完成之后,可以使用分支间的合并(merge)功能,将production分支中所做的修改合并到主分支development中。production分支通过测试部门的测试后merge到online分支,然后即可由运维部门发布。而当项目新阶段的开发完成之后,可以将主开发分支development分支merge到production分支,然后重复前面的流程。在项目实际实施过程中可以视具体情况创建更多分支来满足版本控制要求。
本文主要讲如何使用TFS+GIT实现分布式项目管理,因此不再赘述理论性的东西。想要对GIT有更多了解,可以参考朱永光的这篇博文:http://www.cnblogs.com/redmoon/archive/2013/11/08/3414289.html
下载
http://www.microsoft.com/zh-CN/download/details.aspx?id=42308
最新版本为Team Foundation Server 2013 Update 2,可选择中文版。
安装TFS
如果下载的是镜象文件,可以使用虚拟光驱装载或者使用解压软件解压,然后点击根目录下的tfs_server.exe文件进行安装;
如果下载的是在线安装工具,下载完成后会自动进入安装界面。

配置TFS
安装完成之后,会自动进入TFS的配置,如下图所示:

如果不需要配置share point,可以选择“基本”,“标准单一服务器”和“高级”选项需要指定share point账户,“高级”选项拥有更高的灵活性。
本文以“基本”选项为例。点击“启动向导”,会进入一个欢迎界面,然后点击下一步进入SQL Server实例的配置:

笔者选择使用现有的SQL Server实例:

点击下一步,然后点配置,等待片刻后配置完成:

笔者使用的数据库版本是SQL Server 2014 RTM Enterprise,如果数据库版本过低这一步可能会遇到问题,按提示信息升级至相应版本即可。
至此,服务器端TFS的基本配置完成。接下来要进行项目相关的一些配置,可以在客户端进行,也可以在服务器端进行。
创建团队项目
服务器端配置完成之后就要开始创建团队项目了。Visual Studio自带的团队资源管理器是我们进行配置的最方便的工具。必须从版本级别与 TFS 相同的客户端进行连接。 也就是说,您必须从团队资源管理器 2013 连接到 TFS 2013。
1.打开团队资源管理器,点击右图中的“选择团队项目...”,弹出左图所示界面。

2.点击“服务器(R)...",点击添加,输入TFS服务器的地址。注意防火墙需要开放8080端口,否则可能连接失败。

3.配置工作区。点击步骤2中的确定,然后选择默认的项目集合”DefaultCollection“点击”连接“,成功连接到TFS后,会看到如下图中step1中所示的界面,提示我们配置工作区。

如上图所示,配置工作区共有3步,在step2中,笔者将工作区映射到本地磁盘的D:/TFSGit目录下。
4.创建团队项目。工作区配置完成后就要开始创建团队项目了,团队项目的创建可以在TFS的控制面板(访问地址一般是http://服务器地址:8080/tfs)中进行,也可以在VS的团队资源管理器中进行。这里以VS的团队资源管理器为例。点击团队资源管理器中的“主页”,弹出下图中step1所示的关联菜单:

在step2点击“下一步”,会询问使用哪种过程模板,选择默认的“Microsoft Visual Studio Scrum 2013.2”即可,再点击一下步,会进入step3:

这一步版本控制系统一定要选择Git。
点击“完成”资源管理器会自动创建团队项目。这一过程大约需要几分钟的时间。
完成之后会询问当前源代码管理插件,如图:

这里选择“Microsoft Git 提供程序”作为当前源代码管理插件。如果没有自动弹出,可通过工具->选项->源代码管理来设置。
如果你还没有安装这个插件,可以在 http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c 下载。
接下来要克隆GIT存储区,这里笔者将之前创建的团队项目Test克隆到本地磁盘D:\TFSGit\Test目录下:

克隆完成之后,打开本地磁盘映射区D:/TFSGit可以看到Test文件夹已经变色,说明映射成功:

如果已经有项目了,可以直接把它复制到Test文件夹下,也可以在Test文件夹下创建新项目。
然后打开项目,对着解决方案右键->将解决方案添加到源代码管理,再对着解决方案右键->提交(commit)。括号中是英文版TFS的按钮文本,下同。
点击提交后,这里会让输入一些文字用来描述本次提交所做的更改,如step1所示:

step1只是提交到本地,这是Git的强大之处,可以在本地做版本控制。如果要立即同步到服务器,点击step2中的“同步”按钮,然后在step3中点击“同步(S)”即会进行自动同步。
同步进行了两个操作,一是从服务器拉取(pull)最新版本,然后和本地版本进行比较,进行自动合并(merge)后更新(push)到服务器。
拉取(pull)是从服务器获取最新版本,推送(push)是将本地内容更新到服务器。如果修改的文件有冲突,Git会自动进行合并(merge)。Git能够针对一般性的修改进行自动合并(merge),例如当修改仅仅只是添加或删除一段代码时,而对于同一代码片断服务器版本和本地版本有冲突时Git会提示你手动合并(merge)。虽然其他版本控制工具也都有自动合并功能,但无疑Git做的相当出色。
创建团队成员
对于一个团队项目来说,只有一个管理员账户是不够的,还需要创建更多团队成员。
1.打开TFS的控制面板,访问地址一般是http://服务器地址:8080/tfs

2.点击管理,在项目集合"DefaultCollection"下选择我们要管理的团队项目,然后点击添加->添加Windows用户或组,如图所示:

假设我们要添加一个名为Jerry的用户,但是TFS服务器无法识别Jerry是谁,因此,在添加之前,我们要确保Jerry具有访问服务器的权限。
为此,我们可以在控制面板->用户帐户中添加,添加完成之后,再点击“检查名称”就能正确识别了,如图:

3.点击“保存更改”,Jerry即添加成功:

创建分支
分支是Git的特色之一,分支的创建可以在团队资源管理器中进行。在团队资源管理器的主页,点击默认分支master右边的向下箭头,选择“新建分支”,如图step1:

笔者新建了一个production分支,注意step1完成之后只是在本地创建了分支,右键“发布分支”才同步到服务器。
分支间的合并和切换

如上图将主分支master合并到production分支中。Git的分支切换非常方便,点击向下的小箭头即可随意切换。
笔者以前在使用VSS的时候,要切回旧版本只能新建一个工作区,然后根据打过的某一Label标签从服务器获取源代码,要回到主开发分支上,还得去另外一个工作区,打开另外一个解决方案,麻烦程度简直不可想象。
删除团队项目
团队项目的删除无法在团队资源管理器和TFS控制面板中进行,只能使用TFS自带的管理工具“Team Foundation Server管理控制台”,删除团队项目的操作如图所示:

结语
Git作为一种版本控制系统,首先,在理念上就领先一般的版本控制工具。其次Git的许多特性都很人性化,便于操作,能够提高团队工作效率。无论是大型项目,还是中小型项目,Git都能胜任。
——本文版权属作者和博客园所有,如果转载请注明出处。
使用TFS+GIT实现分布式项目管理的更多相关文章
- Git分布式项目管理 入门到学会
Git简介 Git是什么? Git和SVN一样都是一种高效的管理代码的系统. Git是目前世界上最先进的分布式版本控制系统(没有之一). 创建版本库 什么是版本库呢?版本库又名仓库,英文名reposi ...
- Git分布式项目管理
Git简介 Git是什么? Git和SVN一样都是一种高效的管理代码的系统. Git是目前世界上最先进的分布式版本控制系统(没有之一). 创建版本库 什么是版本库呢?版本库又名仓库,英文名 ...
- tfs+git
TFS+GIT 一:背景介绍 技术团队的代码管理工具原来使用的是纯TFS方案,使用两年后发现一些问题:体积太大,每次新建一个分支需要本地下载一份代码:操作不便,功能分支的建立.合并不方便,本地有很多同 ...
- 源码版本管理工具 :TFS GIT
至于svn ..忽略不计了... 集中式代码管理 CVCS 模式:TFS 分布式代码管理 DVCS 模式:git 两者比较大的差别:tfs 只有一个中央仓储,其他副本都要与中央仓储进行更新.git ...
- 使用VS2013、TFS2013和Git进行分布式团队协作
题记:呵呵,首先声明,题目起的有点大,其实我只想介绍下VS2013和TFS2013新加入的Git功能,也不是在VS中使用Git的详细向导(以后有空再详细分享给大家).这篇文章虽然在写这篇文章<V ...
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Bened ...
- git一个分布式版本工具的使用
1.git和cvs的区别 分支更快,更容易 支持离线工作,本地提交可以稍后提交到服务器上 git提交是原子的,且是整个项目范围的,而不像cvs是对每个文件 git中的每个工作树都包含一个具有完整项目历 ...
- Xcode连接TFS Git用户名和密码不正确解决方案
团队要将原来搭建的Git服务全部迁移到TFS的Git上统一管理,迁移的过程非常顺利.当要用Xcode或者SourceTree连接TFS Git(我们的TFS身份认证是基于Windows的,使用HTTP ...
- 杂项:GIT (分布式版本控制系统)
ylbtech-杂项:GIT (分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git的读音为/gɪt/.Git是一个开源的分布式版本控制系统 ...
随机推荐
- text-size-adjust属性
在慕课上无意中看到-webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;这两段代码,居然发现自己完全不理解,然后就去问度娘了,以下是一些 ...
- 常用基础OC 集合
// 2016年07月19日17:50:53 集合 //七.NSSet 集合对象(容器类,) // 1. 使用类方法创建对象 NSSet *set1 = [NSSet set]; // ...
- Android webView打不开网页的解决办法
在我们开发过程中,有可能会遇到webview有些网页打不开的问题.这可能是设置的不对,下面就是解决办法. 进行如下设置吧,大多数情况都能解决! displayWebview.getSettings() ...
- 2013eoe移动开发者大会圆满落幕
(国内知名Android开发论坛.安卓开发社区推荐:http://www.eoeandroid.com/) 2013eoe移动开发者大会9月14号于国家会议中心盛大召开并圆满结束,超过2000个开发者 ...
- 如何制作CSR文件?
如何制作CSR文件? 在申请数字证书之前,您必须先生成证书私钥和证书请求文件(CSR,Cerificate Signing Request),CSR是您的公钥证书原始文件,包含了您的服务器信息和您的单 ...
- Android 数据通信
一. Http/Net1. http 通讯协议和android中相关API介绍 2.发送http请求实例[GET,POST]论坛参考文献:http://www.eoeandroid.com/viewt ...
- 十大免费教程资源帮助新手快速学习JavaScript
“JavaScript”的名头相信大家肯定是耳熟能详,但只有一小部分人群了解它的使用与应用程序构建方式.这“一小部分”人指的当然是技术过硬的有为青年.网络程序员以及IT专业人员.但对于一位新手或者说外 ...
- jsp:forward response.sendRedirect
jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别 一.response.sen ...
- Scala 深入浅出实战经典 第53讲:Scala中结构类型实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- 【LeetCode】338. Counting Bits (2 solutions)
Counting Bits Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num ...