“版本控制系统”( Version Control System, vcs)是程序代码管理软件的通称,是用来保存程序文件的修改记录以及历史版本,以便日后查看或是使用。Vcs已经有数十年的发展历史,最早期的系统是采用集中管理和控制的方式。如果要修改某一个 程序文件,必须先将它锁定,然后取出修改。在完成修改和回传之前,其他人都不能更改这个程序文件。

这种方式可以有效避免“冲突”( confict)的发生(也就是防止不同人同时修改同一段程序代码所造成混淆的情况) ,但是付出的代价,是效率降低。因为如果想要修改的文件正好有别人正在修改,就必须等程序文件回传之后才能动手。如果要修改的入很多,因为互相等待所造成的时间浪费将非常可观。为了解决这个问题,新的VCs改成采用分布式的方法。每一个入随时都可以获取任何一个程序文件来进行修改,等到送回vcs的时候,再根据需要进行“合并”( merge),Git 就是采用这种分布式技术的系统。

因此,我在参考完全学会Git GitHub Git Server技术栈的基础上,结合自身的实战经验,也结合国内外一线互联网公司的开源实践,综合提出更贴近国内技术文化特色的轻量级微服务参考技术栈,整理了一套Git实战文档,讲解很透彻。今天分享给大家。

看完这份文档你将获得哪些收获?

  1. 让读者熟悉Git的基本用法
  2. 接着学习Git在团队开发模式中的实际运用,并通过介绍GitHub、Bitbucket. GitL ab等提供Git服务的网站
  3. 让读者可以和全世界的项目开发人员交流,提升程序开发的经验和能力。
  4. 最后介绍了架设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,并且加入账号和密码的保护机制。

 

由于篇幅限制,小编这里只将此实战文档的所含内容全部展现出来了,需要获取完整文档用以学习的朋友们可以关注一下小编,后台私信:【git】获取免费领取方式!

 

如果对您有用,希望能得到您的转发,感谢您的大力支持!还有GitHub上的项目源码分享

基于多商户权限系统+商城平台+CMS+微服务API系统的项目源码分享

  • 项目核心: 多商户权限系统+商城平台+CMS内容管理+微服务API系统
  • 架构技术: 基于SpringBoot2.x, springcloud G版本eureka、hystrix、feign、config、gateway微服务架构体系的全新版本,集成分布式事务解决方案seata,集成redis、quartz、tk.mybatis、lombok、各种设计模式等。
  • 项目优势: 架构更清晰、技术更前沿、代码更整洁、页面更美观、学习商用均可。可用于OA系统、 CRM系统、 PDM系统等二次开发,微服务架构学习,非常适用于公司管理平台旧版本升级、新平台搭建快速整合、同时提供API接口服务(供APP、微端、h5等使用)。

项目展示

 

 

 

支持百亿级别、无代码入侵的一个Java分布式日志系统源码分享

一个java分布式日志系统,支持百亿级别,日志从搜集到查询,不用去文件中翻阅日志方便快捷,支持查询一个调用链的日志,支持链路追踪,查看调用链耗时情况,在分布式系统中也可以查询关联日志,能够帮助快速定位问题,简单易用,没有代码入侵,查询界面友好,高效,方便,只要你是java系统,不要做任何项目改造,接入直接使用,日志不落本地磁盘,无需关心日志占用应用服务器磁盘问题.