TFS+GIT

一:背景介绍

技术团队的代码管理工具原来使用的是纯TFS方案,使用两年后发现一些问题:体积太大,每次新建一个分支需要本地下载一份代码;操作不便,功能分支的建立、合并不方便,本地有很多同名的解决方案,需要通过路径区分;版本管理太复杂,项目中在每一个上线版本留一个开发、紧急修复分支的方式实现版本控制。

二:技术介绍

GIT相比传统的版本控制工具最大的优点是实现了分布式项目管理,开发者可以在本地做版本控制,极大的提高了开发人员在项目实施过程中的自由度。

GIT的分支功能同样强大。使用传统的版本控制工具,对于已经上线的项目的维护和项目新阶段的开发两个过程间的同步是非常让人头痛的事情,而GIT的分支可以很好的解决这个问题。

三:原代码处理

在原TFS管理中将本地代码全部签入,个人分支代码合并到主分支。

专人去将代码提交到git+tfs代码管理服务器中,并提供团队项目

四:安装文件

1:分区工具:用于调整c盘大小,如果c盘小于10G建议调整,可以将已迁入tfs中的代码删除

2:GIT

3:vs2017 (2013也可以)(安装2017时一定要选择asp.net和web、.net桌面开发)

五:git安装

见《Git安装教程》

https://www.cnblogs.com/ximiaomiao/p/7140456.html

六:vs中的操作

1:连接团队管理

团队-管理连接-连接到团队项目

TFS服务器   192.168.1.204:8080/tfs

2:选择本地克隆文件夹

 

3:选择解决方案

4:提交本地更改

5:同步、拉取、推送

6:建立功能分支、发布

 

7:注意事项:

1:项目刚开始时是.vs/下的文件如果不能提交就暂存在本地或者忽略

 

:代码处理方案:

1:所有人签入代码到35

2:35合并到src

3:发放tfs+git使用手册,团队内部学习

4:用src、lib、bin、BuildProcessTemplates四个文件作为项目,用vs2013链接204中的tfs创建团队项目

5:安装git、vs2017、net4.6.1 、microsoft.git帮助类的在共享里拿文件安装(Z:\10、技术部共享\软件类\TFS)

5:给出204服务器链接,每个人在本地克隆代码,建立本地分支

6:需要安装vs2017的进行安装

八:遇到问题和解决方案

1:安装vs2017成功但是遇到问题

解决方案:1:window更新,打补丁,然后再安装或者修复vs2017

2:重装系统

2:vs2017内调试时中文输入法输入时终止调试

解决方案:修复vs2017

3:本地创建分支推送到远程origin后其他人看不到

解决方案:1:需要看的人提交所有更改并同步后,重新克隆一份代码到本地,就能看到新建的分支了。

2:还没找到

4:分支合并

解决方案:出现这个提示信息是在“分支合并”,需要将本地代码同步一下,然后再合并代码就可以了。

5:vs2017不能按步骤调试

解决方案:Vs-解决方案配置从“release”切换成“Debug”

九:工作中遇到的问题

本地分支删除后找不到开发代码情况,为了防止这类事情的发生。

1:本地分支功能分支在上线之前不要删除。

2:本地分支功能分支有删除风险时建议同步到origin中。

3:origin分支在上线前不要删除、上线后记得删除Origin上功能分支。

tfs+git的更多相关文章

  1. 使用TFS+GIT实现分布式项目管理

    前言 GIT是近来很流行的一种版本控制系统,是Linux内核之父Linus Torvalds为了管理Linux内核的开发而开发的一种开源的版本控制工具. GIT相比传统的版本控制工具最大的优点是实现了 ...

  2. Xcode连接TFS Git用户名和密码不正确解决方案

    团队要将原来搭建的Git服务全部迁移到TFS的Git上统一管理,迁移的过程非常顺利.当要用Xcode或者SourceTree连接TFS Git(我们的TFS身份认证是基于Windows的,使用HTTP ...

  3. authentication not supported Connect to TFS Git from Xamarin Studio (non-hosted, locally installed TFS 2013)

    There are several instructions on how to connect to TFS Git from Xamarin Studio if you're using the ...

  4. 源码版本管理工具 :TFS GIT

    至于svn  ..忽略不计了... 集中式代码管理 CVCS 模式:TFS 分布式代码管理 DVCS 模式:git 两者比较大的差别:tfs 只有一个中央仓储,其他副本都要与中央仓储进行更新.git  ...

  5. On premise TFS Git OAuth clone failed on agent

    利用TFS2015的跨平台生成代理,在mac osx 上生成xamarin.ios项目,agent费劲九牛二虎之力搞定了(参见http://www.cnblogs.com/zjoch/p/581101 ...

  6. 探索TFS Git 库文件换行(CRLF)的处理方式

    (2018.12.29 更新,增加Git处理方式) 在计算机的技术中,所有文本信息都会涉及换行的问题.例如,你在键盘上敲击一次Enter(回车)键,系统将在文本重增加一行,实际上系统已经在文件中插入了 ...

  7. [TFS4]TFS git地址,分支概念

    1)上传本地代码到TFS a.Generate Git Credentials,即创建git账户密码 b)上传本地代码 git add *git commit -m "纳入管理" ...

  8. Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)

    之前写过一篇博客"探索TFS Git 库文件换行(CRLF)的处理方式",主要是针对TFVC代码库的. 下面这篇文章说明如何在TFS的Git库中处理代码换行的问题. 概述 在Azu ...

  9. [Tool] 源代码管理之Git

    本节目录 什么是Git 什么是GitHub 安装Git GitHub之Repository GitHub之托管页面 常用Git 命令 什么是Git 由于现在的开发多人协同办公,因此出现源代码管理工具 ...

随机推荐

  1. PHP-四种解析XML文件的方法

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  2. VMware Workstation 8正式版下载+密钥序列号

    http://www.cnblogs.com/balaamwe/archive/2011/12/13/2285972.html摘要: 支持Win8安装,虚拟机VMware Workstation 8正 ...

  3. mac svn 命令

    https://www.cnblogs.com/luckythan/p/4478706.html http://blog.csdn.net/aizhiqiang2/article/details/53 ...

  4. 高性能Web架构

    高性能Web架构 转自 架构文摘 2017-02-07 王杰  引言 最新中国互联网络信息中心(CNNIC)发布的<第38次中国互联网络发展状况统计报告>,2016年6月,我国网民规模达7 ...

  5. 通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务

    管理 Linux 自启动进程 Linux 系统的启动程序包括多个阶段,每个阶段由一个不同的图示块表示.下面的图示简要总结了启动过程以及所有包括的主要组件. Linux 启动过程 当你按下你机器上的电源 ...

  6. 哪个线程执行 CompletableFuture’s tasks 和 callbacks?

    CompletableFuture尽管在2014年的三月随着Java8被提出来,但它现在仍然是一种相对较新潮的概念.但也许这个类不为人所熟知是好事,因为它很容易被滥用,特别是涉及到使用线程和线程池的时 ...

  7. jquery实现页面的搜索功能

    $(function(){ $("input[type=button]").click(function(){ var txt=$("input[type=text]&q ...

  8. tp框架事务处理

    当我们需要同时对多个表进行操作的时候就有必要进行事务处理,首先你的数据库和数据表必须满足事务处理,即表引擎为InnoDB 下面为一个demo //事务:表必须是innodb    //删除主表$mod ...

  9. getCanonicalPath getAbsolutePath区别

    1.在winows环境下它们的区别是  getCanonicalPath是标准路径,没有特殊字符,getAbsolutePath是有特殊字符的 2.在AIX系统中它们的区别: 首先编译:javac ...

  10. ajax 传递参数中文乱码解决办法

    /********Start***********/ /*获取地址栏参数*/ function getRequest(){ var url = location.search; //获取url中&qu ...