一、前言

微软的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免费空间呢?

  1. 以Visual Studio 2013 Ultimate版本为例。首先确定自己是正版用户,然后用微软账号登录到Visual Studio(如果你没有微软账户,动手注册一个:注册Microsoft账户。),如下图所示

  

2.第一次登录后,会弹出下面的对话框,自定义存储空间的url,记下这个url:

这时会让你建立一个项目,我们跳过此步骤

在浏览器中访问你的url,出现以下界面(可能会略有不同),你已经成功获得了5GB的存储空间。

四、将本地项目签入到TFS

假设以下场景,我们在本机建立了一个项目,想把这个项目签入到TFS中进行项目管理,如分支、合并、签入、签出、版本更迭等,应该怎么做?

在企业用户中使用TFS,首先要在一台服务器上安装TFS,然后可以在TFS中建立多个团队项目集合(Collection),每个团队项目集合相当于一个放置某一个团队各种项目的容器,可以在某个团队项目集合中建立若干团队项目。

我们所得到的5GB的存储空间,实际上就是微软在自家建的云上的TFS服务器上为我们分配的一个团队项目集合(Collection),这个团队项目集合的大小为5GB,还需要注意的是,我们不能直接把一个本地的项目签入到团队项目集合根目录下,必须先在团队项目集合中新建一个团队项目,然后在把本地项目签入到该团队项目中去,下面我将演示这些操作。

  1. 打开visual studio,连接到我们的团队项目集合

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

    然后我们将这个项目纳入到我们在第3步中建立的团队项目Test TFS中,操作如下:


    完成这些操作后,细心的你可能会发现在解决方案前多了一个绿色的小加号,如下图所示

    注意,截至到目前我们并没有把本地项目签入到TFS中,你可以在浏览器中访问你的url,你会发现并没有什么Test TFS Local项目。还必须执行签入操作,才真正的把项目推送到了TFS,操作如下:

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

五、Visual Studio +TFS进行简单的签入、签出操作

  1. 第一次更改。接着上面的操作,我们将Test TFS Local中的源.cpp代码修改如下:

    #include<iostream>
    using namespace std; int main(){
    //init commit
    //first change
    return ;
    }

    然后仿照章节四中第四步后半部分签入的操作,将本次更改签入到TFS,注释填写为first change commit。仿照章节四中第五步的操作,观察在TFS中源.cpp是否变化,正确操作的话,应该多了一行

    //first change
  2. 为第一次更改打上标签,便于以后签出:

  3. 第二次更改,将源.cpp代码更改为
    #include<iostream>
    using namespace std; int main(){
    //init commit
    //first change
    //second change
    return ;
    }

    然后签入,注释为second change commit

  4. 先在,无论是TFS上的最新版本还是本地的最新版本,源.cpp代码都和3中一样,那么我们如何获取first change commit之后的那个版本呢,在第2步中,我们为first change commit之后的那个版本打上了标签version 0.1,我们根据这个标签来签出该版本,操作如下:

  5. 再次观察代码,是不是second change消失了?

六、结语

Visual Studio+TFS功能远不止这些,我将在后续文章中做详细介绍。如有疑问,欢迎交流:-)

PS:我的大部分文章首发在知乎专栏:关于计算机的一些事,欢迎大家关注

Visual Studio+TFS--强大的项目管理工具的更多相关文章

  1. 新成员!Visual Studio Code --跨平台的开发工具(支持OSX, Linux 和 Windows)

    原文出处:新成员!Visual Studio Code --跨平台的开发工具(支持OSX, Linux 和 Windows) 这是我的文章备份  http://www.dotblogs.com.tw/ ...

  2. Visual Studio TFS Branching and Merging Guidance

    Origin URL:https://msdn.microsoft.com/en-us/magazine/gg598921.aspx Bill Heys and Willy-Peter Schaub ...

  3. 总结 Visual Studio 2019 发布以来 XAML 工具的改进

    不知不觉,Visual Studio 2019 已经出到 16.8 和 16.9 Preview 了.虽然每次更新都林林总总地一大堆新功能和改进,但关于 XAML 的内容总是,always,每次都只有 ...

  4. 转:与Microsoft Visual Studio集成良好的第三方工具

    我们都知道,Microsoft Visual Studio(简称VS)是微软开发的一个非常高效的集成开发环境,但即使已经发展到VS2012,仍然有许多不尽人意的地方.一般来讲,一个项目中需要有控件.代 ...

  5. Visual Studio 2013下JSON可视化工具

          Visual Studio 2013现在我们有个小工具可以实现JSON可视化,这样给我们调试JSON提供了便利. JSON这种数据格式已经比较流行,在WEB前端随处可见. 在你需要安装VS ...

  6. Visual Studio Code作为Angular开发工具常用插件安装、json-server安装与使用、angular/cli安装失败问题

    前提准备: 搭建好Angular开发环境 1 安装Visual Studio Code 教程简单,不会的去问度娘 2 安装Chrome浏览器 教程简单,不会的趣闻度娘 3 Visual Studio ...

  7. Visual Studio高效实用的扩展工具、插件

    说明: 对一个有想法的程序员来说,善于使用一款高效的开发工具是很重要的,今天给大家介绍的是宇宙第一IDE vs用起来很不错的开发工具,假如大家觉得不错也可以尝试的用用,毕竟对于我们这些一天一大半的时间 ...

  8. Angular14 Visual Studio Code作为Angular开发工具常用插件安装、json-server安装与使用、angular/cli安装失败问题、emmet安装

    前提准备: 搭建好Angular开发环境 1 安装Visual Studio Code 教程简单,不会的去问度娘 2 安装Chrome浏览器 教程简单,不会的趣闻度娘 3 Visual Studio ...

  9. Visual Studio: 一键卸载所有组件工具,彻底卸载干净。

    第一步.手动卸载VS主体 第二步.下载工具并解压 网盘下载地址:https://pan.baidu.com/s/1eSHRYxW 也可以在Github上下载最新版本:https://github.co ...

随机推荐

  1. Log4J日志管理类使用详解 (转)

    一.前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包.由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代j ...

  2. 可拖拽的ListView

    今天研究了一下可拖拽的ListView ,当ListView的数据不能充满整个模拟器的时候,系统自带的listview上拖下拽都不好使,显得很单调, 为了实现上拖下拽时也能实现滚动的效果,这时候就需要 ...

  3. angular 滚动

    AngularJs $anchorScroll.$controller.$document $anchorScroll 根据HTML5的规则,当调用这个函数时,它检查当前的url的hash值并且滚动到 ...

  4. hdu1000,hdu1001,hdu1002,hdu1003

    hdu1000 仅仅是为了纪念 #include <cstdio> int main() { int a,b; while (scanf("%d%d",&a,& ...

  5. 富文本编辑器kindeditor配置

    <!--富文本编辑器kindeditor配置↓ --> <link type="text/css" rel="stylesheet" href ...

  6. update the UI property cross thread

    this.Invoke((MethodInvoker)delegate { txtResult.Text = sbd.ToString(); // runs on UI thread });

  7. 折腾域名的dns

    最近,购买域名的时候遇到了几个概念,刚开始不是很懂,最后都是直接找客服给我改好的,现在小结一下帮助理解. DNS域名管理是按后缀进行分组的,比如.com域名,作为最早的商用域名,有很高的推广价值.再比 ...

  8. OpenGL阴影,Shadow Mapping(附源程序)

    实验平台:Win7,VS2010 先上结果截图(文章最后下载程序,解压后直接运行BIN文件夹下的EXE程序): 本文描述图形学的两个最常用的阴影技术之一,Shadow Mapping方法(另一种是Sh ...

  9. Java复习-oop

    我们可理解“纯粹”的面向对象程序设计方法是什么样的:(1) 所有东西都是对象.可将对象想象成一种新型变量:它保存着数据,但可要求它对自身进行操作.理论上讲,可从要解决的问题身上提出所有概念性的组件,然 ...

  10. 遍历 Input检测是否有重复的值

    在项目中需要遍历某个Table中的Input输入是否有重复的值,为此基于Jquery写了两种实现方式(关键在于取值方式): 方法1: function CheckGoodsNo() { var ish ...