为何要写这样一个面向企业开发者的Git教程?这个问题也困扰我本身好久。其实我使用git的时间也不短了,可是就和正在阅读本文的每一位同样,经常使用的基本就是那么几个(git clone, git push)等等。然而git其实有着很是强大的功能,若是不能系统的掌握使用这些功能的技能,咱们很容易在一些场景下不知所措,好比如下这些:html
– 拉取了共享分支后出现了冲突,怎么合并?
– 到底该不应使用分支?
– 修改了分支上的代码,可是须要临时切换到另一个分支上工做,但是当前的代码还不能提交,怎么办?
– 团队开始使用拉取请求(Pull Request)了?这是个什么鬼?
– 改了代码,直接运行git commit为啥就不工做呢?
– 怎么样才能把远程分支下载到本地开始工做?
– 变基(rebase)和合并(merge)到底有什么区别?
– 我须要别人分支上的几个改动,怎么才能只获取这几个改动而不合并全部代码?
– 如何比较文件,分支?如何回退代码?
– 咱们的代码库很大,如何才能正确切换到Git?
– Git如何可以帮助咱们更安全,高效的发布?git
在互联网上其实有不少的Git教程,可是太过零散,不成体系,特别是没有考虑到企业开发者所面临的许多具体而实际的问题。我但愿经过这套教程,解决企业开发者在使用Git过程当中所遇到的诸多疑问,让更多的团队可以享受到Git所带来的良好开发体验,让你们可以真正在大规模复杂项目中将Git的优点发挥出来。我会将咱们在给各类企业进行研发管理咨询中所积累的经验以及咱们的解决方案融入到这套教程中,相信其中的不少场景必定会对你有所帮助。github
这个教程会分红4个部分安全
1. 基础篇:咱们一块儿了解Git的历史,分布式版本控制系统的特色和优点,决定是否git真的适合你。咱们也将完成一些初始化的工做,好比:安装和配置Git工具,介绍几个我经常使用的Git工具,对你的本地Git环境进行初始化操做。最后咱们将完成一些常见的Git操做,让你能够开始在平常工做中开始使用Git。若是你还在纠结以上那些问题,不要担忧,你必须勇敢的迈出这一步,由于Git已是全球开发人员公认的最好的版本控制工具,相信你遇到的问题他人都已经遇到过,也必定都有解决的办法。服务器
- 为何要使用版本控制系统
- Git 分布式版本控制系统的优点
- Git 安装和设置
- 初始化Git存储库(Repo)
- 起步 1 – 建立分支和保存代码
- 起步 2 – 了解Git历史记录
- 起步 3 – 拉取请求 Pull Request 工做机制
2. 进阶篇:咱们一块儿了解Git最经常使用的一系列功能,让你能够开始更加驾轻就熟的完成越加复杂的开发工做,这个时候你会逐渐爱上这个小小的工具,开始欲罢不能;可是你要记住,淹死的都是会游泳的,在你还不够了解一些复杂的功能的时候,不要随意尝试,由于这时你的破坏能力已经足够毁掉你辛苦工做好久的代码了。这一篇中咱们会一块儿针对不少困扰你的问题找到解决方案,让你真正成为一名git高手。为了知足不一样用户的口味,我会分别使用命令行和 Visual Studio 两种工具来完成这一篇的全部操做,确保键盘手和鼠标手都能获得知足。微信
- 使用已有Git Repo提交和共享代码
- 建立新的Git Repo
- 理解Git提交(commit)工做机制
- 使用Git分支(branch)进行工做
- 使用Git推送(push)共享代码
- 使用Git获取/拉取(fetch/pull)更新代码
- 使用拉取请求(Pull Request)进行代码检视
- 使用Git变基(rebase)更新代码
- 使用Git提交拣选(cherry pick)功能在分之间复制改动
- 解决合并冲突(merge conflict)
- 撤销改动
- 忽略文件
- 使用Git历史记录比较文件,分支或者获取历史版本
3. Git企业开发者篇:Git起源于开源软件Linux的开发过程,所以在开源社区中普遍流行,也所以不少企业开发者对其敬而远之,感受没法知足企业开发的诉求。在这一篇中,咱们将一块儿探讨不少企业开发者更加关心的话题,好比:权限管理,Repo分库规划,大规模团队的Git工做流程,与敏捷/瀑布式等不一样开发模式的配合,与持续集成/持续部署流水线的配合等对于企业开发很是重要的话题。帮助你将这个最棒的版本控制工具在你复杂的企业开发场景中使用起来。同时咱们也将探讨如何在大规模团队中引入git的一些策略性思考。markdown
- 在VSTS/TFS上建立Git仓库
- 迁移已有代码库到Git仓库,如:SVN,TFVC
- Git服务器的权限管理
- Git分库规则
- 大规模团队的Git配置管理流程
- 使用Git支持敏捷/瀑布式开发流程
- Git与持续交付(配置持续集成和持续部署)
4. Git分支策略篇:在了解了git强大的分支功能后,如何可以设计出最为高效的分支策略就是困扰不少开发团队的问题。在这一篇中咱们将专门探讨如何针对不一样项目/产品的交付方式和团队结构设计不一样的分支策略,知足各类规模团队的不一样诉求。运维
- Git 分支策略设计的原则,调试单元,部署单元,测试单元
- Git 与团队结构,产品/项目发布特性,产品生命周期
- Git 拉取请求与可靠持续交付
- Git 分叉(Fork)与分支(Branch)的区别
- 传统分支模式与特性分支模式的比较
- 特性分支+拉取请求+质量门模式
- 混用分叉(fork)与特性分支(feature branch)
在这个教程中,咱们将使用 Visual Studio Team Services (VSTS) /Team Foundation Server(TFS) 做为咱们的Git服务器。为何不采用GitHub?这必定是你在想的问题!由于这一系列文章的目标用户是企业开发者,而VSTS提供了企业开发者所须要的全生命周期管理能力,咱们在4个篇章逐渐深刻的过程当中你就会体会到这种端到端工具所带来的好处。我一直都认为,一个企业的软件交付效率中最重要的环节永远的是编码过程,由于这才是软件交付的核心,没有任何的管理实践能够替代开发人员自由自在的编写代码所带来的效率提高。固然,若是你不使用VSTS/TFS也彻底没必要担忧,这个教程中的大多数内容同时适用于任何Git服务器,包括GitHub, GitLab, BitBucket等你们经常使用的环境。ssh
本系列教程将使用Markdown编写,同时发布于 DevOps 文档中心, DevOps公众号和博客,而且文档和全部的示例代码都将经过GitHub开源提供给社区。分布式
相关文章:
- 微软研发云全家桶VSTS登录中国
- Markdown/reST 文档发布流水线
- 几款好用的Git GUI客户端工具
- 使用 SSH 链接 TFS/VSTS 的GIT仓库
- GitHub + VSTS 开源代码双向同步
请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息