Visual Studio+TFS--强大的项目管理工具
一、前言
微软的Visual Studio非常强大,可以无缝结合Git或自家的TFS(Team Foundation Server),进行项目管理非常方便,从需求分析、开发、测试、维护,几乎可以贯穿软件开发的整个生命周期。这篇文章将会详细介绍如何使用Visual Studio结合TFS进行项目管理。
二、什么是TFS
TFS是一种为 Microsoft 产品提供 源代码管理、 数据收集、 报告和项目跟踪,而为协作 软件开发 的项目。 可作为独立的软件,或 Visual Studio Team System (VSTS) 在服务器端后端平台。
其定位类似于Git,功能却比Git更为强大,我将在下文中作介绍。TFS通常被用于企业中作为项目管理工具,即在一台服务器上安装TFS,然后将相关人员加入到组中,在Visual Studio中开发时用团队资源管理器连接到这台服务器,就可以使用强大的项目管理功能了。
那么,作为个人,我们能否使用Visual Studio结合TFS强大的项目管理功能呢?答案是可以。良心的微软搭建了云上的TFS,并且为每个使用正版Visual Studio的用户都分配了免费的5GB空间!
三、获取空间
废话不多说,切入正题。如何获取这5GB免费空间呢?
- 以Visual Studio 2013 Ultimate版本为例。首先确定自己是正版用户,然后用微软账号登录到Visual Studio(如果你没有微软账户,动手注册一个:注册Microsoft账户。),如下图所示
2.第一次登录后,会弹出下面的对话框,自定义存储空间的url,记下这个url:
这时会让你建立一个项目,我们跳过此步骤
在浏览器中访问你的url,出现以下界面(可能会略有不同),你已经成功获得了5GB的存储空间。
四、将本地项目签入到TFS
假设以下场景,我们在本机建立了一个项目,想把这个项目签入到TFS中进行项目管理,如分支、合并、签入、签出、版本更迭等,应该怎么做?
在企业用户中使用TFS,首先要在一台服务器上安装TFS,然后可以在TFS中建立多个团队项目集合(Collection),每个团队项目集合相当于一个放置某一个团队各种项目的容器,可以在某个团队项目集合中建立若干团队项目。
我们所得到的5GB的存储空间,实际上就是微软在自家建的云上的TFS服务器上为我们分配的一个团队项目集合(Collection),这个团队项目集合的大小为5GB,还需要注意的是,我们不能直接把一个本地的项目签入到团队项目集合根目录下,必须先在团队项目集合中新建一个团队项目,然后在把本地项目签入到该团队项目中去,下面我将演示这些操作。
- 打开visual studio,连接到我们的团队项目集合


- 出现下图所示,则表示已经连接成功

- 我们要在团队项目集合中新建一个团队项目,然后把本地项目签入到这个团队项目中,这样才能进行项目管理的操作(注意,这个项目并没有在本地创建),操作如下:
点击新建团队项目后会打开下面的网页,填写相应项
创建成功
- 将本地项目纳入到TFS进行项目管理。首先我在本机上新建了一个名为Test TFS Local的空项目,添加了了一个源.cpp文件,代码如下:
#include<iostream>
using namespace std; int main(){
//init commit
return ;
}然后我们将这个项目纳入到我们在第3步中建立的团队项目Test TFS中,操作如下:


完成这些操作后,细心的你可能会发现在解决方案前多了一个绿色的小加号,如下图所示
注意,截至到目前我们并没有把本地项目签入到TFS中,你可以在浏览器中访问你的url,你会发现并没有什么Test TFS Local项目。还必须执行签入操作,才真正的把项目推送到了TFS,操作如下:

- 经过前面的四步,我们已经把本地项目签入到了TFS中Test TFS项目下,访问第2步中记下的url,如图,可以观察到我们的项目Test TFS Local了


五、Visual Studio +TFS进行简单的签入、签出操作
- 第一次更改。接着上面的操作,我们将Test TFS Local中的源.cpp代码修改如下:
#include<iostream>
using namespace std; int main(){
//init commit
//first change
return ;
}然后仿照章节四中第四步后半部分签入的操作,将本次更改签入到TFS,注释填写为first change commit。仿照章节四中第五步的操作,观察在TFS中源.cpp是否变化,正确操作的话,应该多了一行
//first change
- 为第一次更改打上标签,便于以后签出:


- 第二次更改,将源.cpp代码更改为
#include<iostream>
using namespace std; int main(){
//init commit
//first change
//second change
return ;
}然后签入,注释为second change commit
- 先在,无论是TFS上的最新版本还是本地的最新版本,源.cpp代码都和3中一样,那么我们如何获取first change commit之后的那个版本呢,在第2步中,我们为first change commit之后的那个版本打上了标签version 0.1,我们根据这个标签来签出该版本,操作如下:


- 再次观察代码,是不是second change消失了?
六、结语
Visual Studio+TFS功能远不止这些,我将在后续文章中做详细介绍。如有疑问,欢迎交流:-)
PS:我的大部分文章首发在知乎专栏:关于计算机的一些事,欢迎大家关注
Visual Studio+TFS--强大的项目管理工具的更多相关文章
- 新成员!Visual Studio Code --跨平台的开发工具(支持OSX, Linux 和 Windows)
原文出处:新成员!Visual Studio Code --跨平台的开发工具(支持OSX, Linux 和 Windows) 这是我的文章备份 http://www.dotblogs.com.tw/ ...
- Visual Studio TFS Branching and Merging Guidance
Origin URL:https://msdn.microsoft.com/en-us/magazine/gg598921.aspx Bill Heys and Willy-Peter Schaub ...
- 总结 Visual Studio 2019 发布以来 XAML 工具的改进
不知不觉,Visual Studio 2019 已经出到 16.8 和 16.9 Preview 了.虽然每次更新都林林总总地一大堆新功能和改进,但关于 XAML 的内容总是,always,每次都只有 ...
- 转:与Microsoft Visual Studio集成良好的第三方工具
我们都知道,Microsoft Visual Studio(简称VS)是微软开发的一个非常高效的集成开发环境,但即使已经发展到VS2012,仍然有许多不尽人意的地方.一般来讲,一个项目中需要有控件.代 ...
- Visual Studio 2013下JSON可视化工具
Visual Studio 2013现在我们有个小工具可以实现JSON可视化,这样给我们调试JSON提供了便利. JSON这种数据格式已经比较流行,在WEB前端随处可见. 在你需要安装VS ...
- Visual Studio Code作为Angular开发工具常用插件安装、json-server安装与使用、angular/cli安装失败问题
前提准备: 搭建好Angular开发环境 1 安装Visual Studio Code 教程简单,不会的去问度娘 2 安装Chrome浏览器 教程简单,不会的趣闻度娘 3 Visual Studio ...
- Visual Studio高效实用的扩展工具、插件
说明: 对一个有想法的程序员来说,善于使用一款高效的开发工具是很重要的,今天给大家介绍的是宇宙第一IDE vs用起来很不错的开发工具,假如大家觉得不错也可以尝试的用用,毕竟对于我们这些一天一大半的时间 ...
- Angular14 Visual Studio Code作为Angular开发工具常用插件安装、json-server安装与使用、angular/cli安装失败问题、emmet安装
前提准备: 搭建好Angular开发环境 1 安装Visual Studio Code 教程简单,不会的去问度娘 2 安装Chrome浏览器 教程简单,不会的趣闻度娘 3 Visual Studio ...
- Visual Studio: 一键卸载所有组件工具,彻底卸载干净。
第一步.手动卸载VS主体 第二步.下载工具并解压 网盘下载地址:https://pan.baidu.com/s/1eSHRYxW 也可以在Github上下载最新版本:https://github.co ...
随机推荐
- eclipse为方法添加注释的快捷键是什么
/** * 登录验证 * @param 传入的vo类 * @return * @throws Exception */这种注释快捷键? 先敲“/”在敲两个**,然后回车
- LED BIN code
在LED选型时,一开始我们都知道要选个某种颜色,在选个尺寸,但在到具体选的时候,就会被那些个各种各样的参数搞得迷糊,这个主要对一个最让人困惑的参数-BIN CODE做整理. BIN就是bining的缩 ...
- grep查询文本:问一个简单shell问题,将grep的输出赋值给一个变量
问一个简单shell问题,将grep的输出赋值给一个变量 用grep命令得到的输出赋值给一个变量不成功. grep命令如下: 代码: $ grep -c '^abc' file.txt 输出为22,表 ...
- Ubuntu gcc缺失问题
在安装redis过程中,需要使用make编译源码,但发现linux中缺失gcc,系统为Ubuntu12. 一般情况下,可使用sudo apt-get install gcc或者sudo apt-get ...
- RSA_SHA256数字签名
------------------ rsa 加密与解密 ----------------------------- 数论知识的实际应用: rsa加密 把问题归结为对数字的加密. 被加密的数字为明文. ...
- tomcat中catalina是什么(转)
转自http://blog.sina.com.cn/s/blog_700aa8830101kgbk.html 谢谢博主的总结 catalina 就是Tomcat服务器使用的 Apache实现的serv ...
- calender 软文
http://www.cnblogs.com/cloudgamer/archive/2008/08/23/1274459.html
- Cruehead.1
查壳 没有 我拖 alt+F9 到上面 入口处 下断 关键跳 略过 就没了 要实现 强暴 直接过... 仔细来看看... 那两个调用 都下断 看看 判断 ...
- 使用注解配置Spring框架自动代理通知
话不多说上代码 项目架构图及Lib包如下: 第二步创建业务类接口 package cn.happy.day01.entity; /** * 1.业务接口 * @author Happy * */ pu ...
- Python基于websocket实时通信的实现—GoEasy
Python websocket实时消息推送 在这里我记录一下之前如何实现服务器端与客户端实时通信: 实现步骤如下: 1. 获取GoEasy appkey. 在goeasy官网上注册一个 ...


