一:概述

源码控制管理器,也叫“版本控制”软件,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是专业软件公司的基础工具。它主要是协助在多人团队中控制代码,防止代码管理混乱、代码冲突,对代码拥有者进行权限控制等。最课程(www.zuikc.com)的.NET培训为了最大程度的对学员负责,从您刚入班就教会您怎么使用源码控制,并且我们的教师还会通过源码控制来修改您的代码。

源码控制主要存在如下的操作:

签入文件或目录

此操作将工作目录作为新版本复制回存储库。

签出文件或目录

此操作从存储库中将文件的最新修订版本复制到工作空间。签出目录时,将签出该目录下的所有文件和子目录。

提交文件或目录

此操作与签入文件或目录相同。版本控制用户会经常说他们“已提交更改”;这表示他们对各自文件的工作副本做了更改,并将这些更改提交到存储库。

冲突

当两名开发人员对同一文件的工作副本进行更改,并将这些更改提交到存储库时,他们的工作可能会发生冲突。在这种情况下,源码管理软件将检测冲突,并要求某个人先解决该冲突,然后再提交他们的更改。

合并

将对相同文件的不同工作副本进行的多个更改合并到源存储库中。合并是一种管理冲突的策略,它允许多名开发人员同时工作(不必对文件进行锁定),然后将他们的工作并入一个组合版本中。当对同一文件的不同行进行两组更改时,合并这两组更改很容易,而合并操作也可正常进行。但对文件的同一行或几行进行更改时,将发生冲突,这就要求有人手动编辑该文件,然后才能将这些更改成功提交到源存储库。

二:最课程源码控制(TFS)

最课程(www.zuikc.com的源码控制,最开始使用微软提供的 TFS(team foundation server)。注意,由于各种各样的问题,Party现在越来越不待见外企,即便包括微软这样的公司,某些服务也时不时的被墙或者不稳定一下。微软提供的TFS服务在过去的两年中,时不时会出现一下无法连接或者速度超慢,故,当前最课程(www.zuikc.com)的源码服务已经迁移到 淘宝Code 上。但,TFS作为自主源码服务器,仍旧被很大一部分的公司使用,所以,我们仍旧需要掌握下这个工具。

TFS它分为服务器端部分和客户端部分:

其服务器端部分,是一个单独的软件,需要配置在服务器上,在我们的课程中,我们使用微软免费提供给我们的 TFS 服务器端。

而客户端,就是我们使用的编码工具 Visual Studio 2013(以下简称 VS),我们可以通过 VS,签入和签出代码。

为什么最课程要使用源码控制工具

基于两个原因:

1:最为学员的你完成 最课程(www.zuikc.com中的代码,最课程(www.zuikc.com的老师需要 Check 你的代码,这能保证你在 最课程(www.zuikc.com学习中编写的每一行代码都逃不过我们的审核;

2:专业的软件公司,在软件开发过程中,都有一个流程,叫做 同行评审(Peer Review),这类似于我们的教师 评审 你的代码,如果你在 最课程(www.zuikc.com中已经熟悉了这个过程,那么踏上工作之路,对此就不会觉得陌生。

 

三:添加打老鼠游戏解决方案到服务器

我们再接再厉,在本节中直接把打老鼠这个游戏的解决方案先建立完毕。和“Hello World”一样,我们新建工程:

打老鼠游戏,不再是一个简简单单的控制台程序了,而是有界面的一个应用程序,所以我们这次选择的项目类型为“Windows Forms Application”,注意Loction我们选择了刚才的TFS中MAP到的路径。输入工程名:MouseHit,解决方案名:MouseHitSlu,点击OK,出现如下界面:

紧接着,在解决方案名上点右键,在右键菜单中,我们选择“Add solution to Source Control”,我们会发现VS中的文件前面多了几个“+”号:

这说明TFS标识为这几个文件是新增的,这个时候,我们再点击解决方案名的右键,选择“Check in”:

会出现如下界面:

把注释写入,然后点击“Chech in”,说明我们完成一次签入过程,我们的代码就已经传送到了服务器了。这个时候,我们在回到“Solution Explorer”的页签,见下图下方的红色处,然后检查刚才为“+”号的文件前方,已经变成了一把锁的图标。这表明:是的,我们的文件已经被服务器所控制了。

再进一步的,回到VS的Source Control Explorer,我们会发现,刚才签入的代码已经存在于服务器了,见下图:

好了,到了这一步,我将会在TFS上看到你提交的代码,不妨等待我的回复,看我在你的代码中修改了什么,以及加入了什么注释。

四:连接TFS源码服务器

最课程(www.zuikc.com的学员,都会由 最课程(www.zuikc.com分配一个 TFS 帐号,比如:zuikc@outlook.com(这是我们的演示帐号,实际上,你收的帐号,可能是 zhangsan@outlook.com)。

其次,我们还会告诉你一个 TFS 的源码地址,比如:zuikc.visualstudio.com,然后,我们需要经过如下的步骤连接到源码服务器:

1:打开 VS -> Team -> Connect to Team Foundation Server;

2:Select Team Projects,选择 Server -> Add ,输入:zhangsan.visualstudio.com(示例),确定,输入用户名和密码;

3:点击 Connect,就可以看到 VS 中展开了源码管理的页面;

在这个页面中,最课程(zuikc.com)已经给你创建了一个最基本的控制台应用程序,你的最开始的作业,就可以在这个控制台程序中完成。下一节,你可以通过视频来看到上面的操作。

4:在 源码管理 页面,我们还在把在 TFS 上的路径和本地硬盘上的文件关联起来,这就是 Map 的过程,MAP 成功,就会把服务器上的代码下载到本地;

五:Map 服务器地址到本地

现在我们要做的,就是让TFS的空间地址和你硬盘上的地址绑定起来。这个时候,我们需要点击2处的“Source Control Explorer”,然后我们会看到如下界面:

在这个界面中,显示的是我为你创建的TFS文件夹(它相当于服务器上硬盘上的一个文件夹)。

我们会注意到,这个界面中,1处显示的是Not mapped,这说明我们还没有将TFS的地址和本地硬盘上的地址绑定起来。这个时候我们点击它,打开如下界面,然后选一个本地地址:

然后点击Map,然后出现如下界面,然后确定,就可以了。

经过上面这些步骤的操作,我们就在TFS的网站创建了一个自己的TFS空间,然后我们就可以把自己的代码签入到这个空间里,别人也就可以获取和修改你的代码了。当前的VS界面如下。注意红线部分已经变成了我们选择的路径,路径后面自带了我们的TFS空间名:

六:TFS视频

非公开部分,请联系 www.zuikc.com 获取;

七:最课程源码控制(淘宝Code)

鉴于上文说到的原因,微软提供的TFS我们已经不建议使用,那么,现在我们使用的是淘宝Code(http://code.taobao.org/)。也确实,现在国内的软件公司无论从技术上还是硬件上,都已经可以和国际顶尖公司抗衡,尤其在国内的环境下,甚至更好。

淘宝Code,使用的是 SVN 来进行源码控制。SVN是一款非常著名的版本控制软件,应用非常广泛,从市场占有率上来说,应该排在第一。使用SVN来进行源码控制,对于VisualStuio来说,还需要装两个软件,一个是:TortoiseSVN(http://tortoisesvn.net/),一个是:VisualSVN(https://www.visualsvn.com/),这里不再指定版本,我们可以到官网下载然后进行安装。

安装完毕后,我们还需要到http://code.taobao.org/去注册一个帐号,注册的过程非常简单,一切完毕后,登录淘宝Code,然后看到的界面类似于:

八:连接淘宝Code源码服务器

首先,我们需要在淘宝Code上面创建自己的项目,如下:

注意哦,最好不要选择公开项目,因为我们目前的编码能力还很弱,你只需要对最课程(www.zuikc.com)的老师可见就可以了,所以,公开项目这里我们选择了否。

创建完毕,界面大概是这样的:

这个时候,我们打开 VisualStuio,在 Tools-Option 中选择 Source Control,选择 VisualSVN 作为我们的源码控制器,如下:

现在,打开我们的解决方案(或者新建解决方案),在解决方案名上面点右键,选择 Add Solution To Subversion:

然后,下一步,选择:

下一步,输入自己的项目名,最好在后面加入 trunk:

下一步:

点击 Import ,稍候,我们的解决方案就注册到了淘宝Code上了。看到这个界面,就说明这一步成功了:

下一步,我们还需要把代码签入进去。在解决方案上,点右键,找到 Commit,点击:

出现这个界面:

然后,点击 OK,就签入成功了。注意,查看,此时解决方案中的黄点变成了绿点。

到TaobaoCode上去刷新下界面,看到了如下的界面:

好的,这就说明我们的代码签入成功了。

备注:TFS和SVN的签入和获取最新有不同,其对应关系为,

Check In        -》   Commit

Get Latest Version    -》 Update

.NET零基础入门之02:源码控制管理器的使用的更多相关文章

  1. Python3零基础入门学习视频+源码+课件+习题-小甲鱼

    目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...

  2. 「非软文」零基础学习TypeScript(源码开源)

    今天,这篇文章篇幅很短,主要开放我最近学习整理TypeScript源码. 源码地址 https://github.com/maomincoding/typeScript_study 更多内容请见原文, ...

  3. Apache Flink 零基础入门(转)

    这是一份很好的 Apache Flink 零基础入门教程. Apache Flink 零基础入门(一&二):基础概念解析 Apache Flink 零基础入门(三):开发环境搭建和应用的配置. ...

  4. 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结

    020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...

  5. 015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码

    015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码 本文知识点:Unicode编码以及字符如何表示? ASCII码是美国提出的标准信息 ...

  6. 014 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 08 “字符型”字面值

    014 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 08 "字符型"字面值 字符型 字面值如何表示? 两个关键:单引号(必须是英文单引号). ...

  7. 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介

    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...

  8. # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结

    095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  9. 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)

    094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

随机推荐

  1. 利用openssl构建根证书-服务器证书-客户证书

    利用openssl构建根证书-服务器证书-客户证书 OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理 一.构建根证书 1.构建根证书前,需要构建随机数文件(.rand) ...

  2. sklearn GMM模型介绍

    参考  SKlearn 库 EM 算法混合高斯模型参数说明及代码实现   和   sklearn.mixture.GaussianMixture 以前的推导内容:    GMM 与 EM 算法 记录下 ...

  3. JAVA 画图板实现(基本画图功能+界面UI)一、界面实现

    /*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 这段时间在学JAVA的swing界面开发,试着做了个画图板.实现了直线.曲线.喷枪.矩形.圆形.文字 ...

  4. C# asp.net 抓取需要登录的网页内容 抓取asp.net登录验证的网站

    private void btnASPNET_Click(object sender, EventArgs e)        {            Dictionary<string, s ...

  5. seq2seq模型以及其tensorflow的简化代码实现

    本文内容: 什么是seq2seq模型 Encoder-Decoder结构 常用的四种结构 带attention的seq2seq 模型的输出 seq2seq简单序列生成实现代码 一.什么是seq2seq ...

  6. zk节点扩充

    zk节点扩充,从3个节点扩充为7个节点,需要先安装4个节点,在将4个节点的配置进行修改,然后在修改 原有的3个节点.至此完成对zk的扩充实现,在此做个记录. zk节点的顺序,与对应zk与所在序列保持一 ...

  7. Codeforces Round #394 (Div. 2) B. Dasha and friends 暴力

    B. Dasha and friends 题目连接: http://codeforces.com/contest/761/problem/B Description Running with barr ...

  8. spring cloud 学习(5) - config server

    分布式环境下的统一配置框架,已经有不少了,比如百度的disconf,阿里的diamand.今天来看下spring cloud对应的解决方案: 如上图,从架构上就可以看出与disconf之类的有很大不同 ...

  9. oracle linux dtrace

    http://docs.oracle.com/cd/E37670_01/E38608/html/pref.html

  10. jQuery 事件方法大全-超全的总结

    jquery经常使用的事件: /*     on     off     hover     blur     change     click     dblclick     focus     ...