太厉害了,阿里大牛居然把 Git,GitHub 总结的这么全面,快乐撸码

“版本控制系统”( Version Control System, vcs)是程序代码管理软件的通称,是用来保存程序文件的修改记录以及历史版本,以便日后查看或是使用。Vcs 已经有数十年的发展历史,最早期的系统是采用集中管理和控制的方式。如果要修改某一个 程序文件,必须先将它锁定,然后取出修改。在完成修改和回传之前,其他人都不能更改这个程序文件。
这种方式可以有效避免“冲突”( confict)的发生(也就是防止不同人同时修改同一段程序代码所造成混淆的情况) ,但是付出的代价,是效率降低。因为如果想要修改的文件正好有别人正在修改,就必须等程序文件回传之后才能动手。如果要修改的入很多,因为互相等待所造成的时间浪费将非常可观。为了解决这个问题,新的 VCs 改成采用分布式的方法。每一个入随时都可以获取任何一个程序文件来进行修改,等到送回 vcs 的时候,再根据需要进行“合并”( merge),Git 就是采用这种分布式技术的系统。
因此,我在参考完全学会 Git GitHub Git Server 技术栈的基础上,结合自身的实战经验,也结合国内外一线互联网公司的开源实践,综合提出更贴近国内技术文化特色的轻量级微服务参考技术栈,整理了一套 Git 实战文档,讲解很透彻。今天分享给大家。
看完这份文档你将获得哪些收获?
让读者熟悉 Git 的基本用法
接着学习 Git 在团队开发模式中的实际运用,并通过介绍 GitHub、Bitbucket. GitL ab 等提供 Git 服务的网站
让读者可以和全世界的项目开发人员交流,提升程序开发的经验和能力。
最后介绍了架设 Git Server 的几种方法,让每一个项目开发团队 ,可以按照自己的软硬件环境, 选择适合的方式来有效管控自 2 己开发的项目。
文档内容目录
第一部分 Git 的基本概念和操作
第 1 课 Git、 谁与争锋
第 2 课 Git 配置文件的妙用
第 3 课把文件存入 Git 文档库
第 4 课比较文件的差异和从 Git 文档库取回文件
第 5 课 Git 程序项 目管理的实践演练
第 6 课获取 Git 文档库统计数据和绘制统计图表
第二部分建立分支、合并和解决冲突
第 7 课程序项目的分支 ( Branch)
第 8 课合并程序项 目的分支和解决冲突
第 9 课使用 Rebase 指令更新分支的起始点
第 10 课程序项目的分支和合并的实践演练
第三部分 Git 程序的图形操作介面
第 11 课 Git GUi 程序的基本功能
第 12 课使用 Git GUI 程序创建分支和合并
第 13 课 SmartGit 程序操作介绍
第 14 课 SourceTree 程序操作介绍
第 15 课 TortoiseGit 程序操作介绍
第四部分远程 Git 文档库和团队开关模式
第 16 课远程 Git 文档库”的基础操作
第 17 课远程 Git 文档库”的高级操作
第 18 课 GitHub 让程序项目飞上云端
第 19 课 Fork 让 Git 文档库分家后再合并
第 20 课 Bitbucket 比 GitHub 更好用
第 21 课 GitLab 完全免费再加送整个系统
第五部分架设 Git Server
第 22 课使用 Windows 共享文件夹或是 Git Daemon 作为 Git Server
第 23 课使用 HTTP/HTTPS 访问 Git Server
第 24 课使用 SSH 认证和加密的 Git Server
Git 的基本概念和操作
1. Git 可以管理任何一个文件夹中的文件和的文件夹,只要在该文件夹中执行"git init",就可以让 Git 完成管理前的准备工作。Git 会在这个文件夹创建所谓的 repository(我们把它称为“文档库”),里面存储被管理的文件和文件夹内容,包括所有曾经被加入的历史版本。
2. “文档库"其实是名称叫作“.git" 的的文件夹,默认它会被隐藏起来,我们可以改变文件夹的查看选项,让隐藏的文件和文件夹也能够正常显示。.
3. Git 可以正确处理中文名称的文件和文件夹,只是 Git Bash 程序在显示中文的时候会出现乱码,后续我们会介绍 gitk 图形查看模式,它可以正确显示中文。
4. 单独执行"git" 指令会显示辅助说明:执行“git help-a"则显示完整的指令列表:执行"git 指令- help" (例如” git init- help" )则会显示该指令的网页说明文件。
5.如果指令太长,想要换到下一行继续输入,可以用反斜杠字符"\"结尾,然后按下 Enter 键,继续输入。

Git( 有三个不同级别的配置文件,它们有不同的优先权,高优先权文件的设置项会覆盖低优先权文件中相同的设置项。以下按照优先权从高至低按序介绍:

建立分支合并和解决冲突
在大多数的情况下,程序项目的分支都会被合并到主要分支。除非决定将该分支独立出来,成为另一个程序项目。合并程序项目的分支需要使用“ git merge"指令.

学会使用 Git 指令和操作方法之后,在这个单元我们要介绍如何在开发程序项目的过程中,导入 Git 管理机制。首先要介绍的是使用 Git 的策略,接着再用一个实际的程序项目来示范。

Git 程序的图形操作介面
到当前为止,我们一直都是使用 Git Bash 程序来学习 Git 的用法。Git Bash 程序是以输入指令的方式操作 Git 文档库。与图形操作界面的程序相比,这种命令行模式的程序好像比较麻烦。其实不然,Git Bash 程序才是能够完整发挥 Git 最大功能的操作工具。初学者应该从 GitBash 程序开始学习,才能打下扎实的 Git 指令基础,并且完整了解 Git 文档库的工作原理。

TortoiscGit 同样是一个图形操作界面的 Git 程序,而且知名度在同类型的程序中算是数一数二的。它是一个开放源码的程序项目,因此完全免费使用。使用百度或者 Google 搜索 TortoiseGit, 就可以找到它的官方网址。它提供了 32 位和 64 位的版本,必须按照计算机安装的 Windows 版本,下载合适的安装文件。下载之后,执行安装文件,然后按照屏幕画面的说明操作,就可以顺利完成安装。

远程 Git 文档库和团队开关模式
截至当前为止,我们操作的 Git 文档库都是存储在程序项目的文件夹内(也就是“git"子文件夹内)。随着程序项目的进展,我们会把不同阶段的文件内容加入 Git 文档库。这个 Git 文档库是由我们直接操控,称它为“本地 Git 文档库( local repository) ”。除了“本地 Git 文档库”以外,如果需要和其他人共同开发这个程序项目,还需要一个所谓的“ 远程 Git 文档库( remote repository)”。这个单元我们就来介绍“远程 Git 文档库”的功能和用法。

Bitbucket 网站已经比 GitHub 大方得多,让我们可以免费创建私有的 Git 文档库。但是 GitLab 网站又更进-步,其他网站要收费的项目,GitLab 完全免费提供。不仅如此,它还把整个系统的程序代码公开,让大家可以在自己的计算机上安装,创建完全私有的 GitLab 网站。这个单元我们就来介绍 GitLab 网站的用法,以及如何在自己的计算机上创建一个 GitLab 网站。

架设 Git Server
这个单元先介绍两种访问远程 Git 文档库最简单的做法。这两种方法都不需要安装任何其他软件。第一种是使用 Windows 操作系统本身的网络“共享文件夹"功能;第二种是使用 Git 内建的 daemon 功能。

绝大部分的公司都不想把自己辛苦开发的程序项目,存储在公司以外的地方。尤其对于高科技公司来说,软件是最重要的财产之一,应该受到严密的保护。因此,为了存储这些重要的知识产权,需要在公司内部创建一个私有的 Git Server,并且严格管制访问权限,以避免发生被窃取的情况。这个单元我们要介绍如何架设可以通过 HTTP 以及 HTTPS 访问的 Git Server,并且加入账号和密码的保护机制。

由于篇幅限制,小编这里只将此实战文档的所含内容全部展现出来了,需要获取完整文档用以学习的朋友们添加微信:mxh5261 领取!

如果对您有用,希望能得到您的转发,感谢您的大力支持!
版权声明: 本文为 InfoQ 作者【喝酸奶不舔盖】的原创文章。
原文链接:【http://xie.infoq.cn/article/af1dbff3fb6553a819e7eed45】。未经作者许可,禁止转载。
评论