1、Web开发苏勇老师Git 版本控制系统精讲视频课程笔记视频来源(51CTO)1、版本控制系统:1.1、版本控制系统功能介绍 记录文件的所有历史变化 随时可恢复到任何一个历史状态 多人协作开发或者修改 错误恢复 多功能并行开发1.2、版本控制系统分类 本地版本控制系统Local VCS 集中化版本控制系统Centralized VCS 分布式版本控制系统 Distributed VCS1.2.1本地版本控制系统(LVCS)常见的工具有:RCS( Revision CS)原理图如下:优点: 简答、很多系统(操作系统)都内置 适合管理文本文件 (如配置文件、文章、信件、简单的文档等等)缺点: 只适合
2、管理少量的文件,不支持基于项目的管理 支持的文件类型比较单一 不支持网络,无法实现多人协作1.2.2集中化版本控制系统(CVCS) 常见的有:CVS、Subversion、原理图如下: 优点: 适合多人团队开发 代码集中化管理缺点: 单点故障 服务器出问题,其他计算机无法获得版本了 必须联网工作,无法单机本地工作1.2.3分布式版本控制系统(LVCS)常见的工具有:Git、Mercurial原理图如下:优点: 适合多人团队协作开发 代码集中化管理 可以离线工作 每个计算机都是一个完整仓库1.3、版本控制系统的基本概念 repository - 存放所有文件及历史信息 checkout - 取出
3、或者切换到指定版本的文件 version - 记录表示一个版本(编号或者其他代码) tag - 记录标识一个主要版本(1.0 2.0 3.0)(完善的版本可以为其打一个tag)1.4 现在使用的多为分布式版本控制系统2、Git版本控制系统简介Git最初是为了取代Bitkeeper,由Linux创始人开发,作为管理Linux内核代码管理系统使用 2.1、Git优点: 速度快 简单的设计 对非线性开发模式的强力支持(允许上千个并行开发的分支) 完全分布式 有能力高效管理类似Linux内核一样的超大规模项目(速度和数据量)2.2、Git原理2.2.1、Git原理 - 快照,而非保存区别 打补丁: 快
4、照方式:当所有版本都变化时,就没有了快照,此时的版本都是一个独立的文件,而不是补丁2.2.2、Git的原理 - 文件的识别 几乎所有的操作都是本地执行 通过校验和算法识别文件的变化- Git使用SHA-1算法对文件内容或目录结构进行哈希运算,用得出的校验值作为识别变化的指纹,如: 多数操作均为添加操作2.2.3、Git原理 文件状态及工作区域3、安装Git 3.1、Centos Linux命令: yum list | grep gityum install -y gitgit 3.2、Ubuntu Linux命令:sudo apt -get install gitgit -version 3.
5、3、Windows 下的Git的安装版本Git-2.10.1-64-bit,下载地址:https:/git- 安装过程: Nextnextnext 注意一点安装过程中这里的命令行建议使用bash命令行,当然不选也行3.3.1、遇到的问题如下:Windows下修改Git Bash 默认路径,参考地址: 3.3.2、简单操作 1、新建一个本地库 2、展示效果,库已经建成 4、Git的初始化及创建 4.1、git 基础设置 此处设置是为了标识谁提交了代码:1、 设置用户名 git config -global user.name aiainui2、 设置用户邮箱 $ git config -glob
6、al user.email 3798794193、 查看设置 $ git config list 操作实例: 4.2、Git帮助命令 可以通过以下命令获取Git帮助git help 可以通过以下命令获取特定指令的帮助git help 特定指令操作实例如下:4.3、初始化一个新的Git仓库 1、创建一个文件夹(或者使用已有的文件夹) mkdir myDemo 2、在文件夹内初始化Git,创建Git 仓库 cd myDemo git init 经过以上步骤就会在该文件夹下面产生一个.git仓库文件,所有的git相关的是数据保存在这个文件中。 操作实例: 相关的Linux操作指令示例: 4.X 此处
7、需要回顾一下Git的工作区域:1、工作目录:编辑、修改文件2、暂存区域(index):暂存已经修改的文件3、Git仓库:最终添加到.git的文件中4.4、向仓库中添加新的文件 原理示例图:(比如添加README、hellogit.rb文件) 第一步,创建相关文件 touch README touch hellogit.rb 第二步,将该文件添加到Staging area暂存区域: git add READMEgit add hellogit.rbgit status(查看当前状态) 第三步,将暂存区域的文件提交到仓库中: git commit -m “init repo” #-m后面就是简单的
8、描述提交文件做了什么样的修改git status #查看文件的当前状态 操作示例:1、创建文件,此时文件的状态为Untrack files(未被追踪,即就是没有确定是否要提交的文件)2、将文件提交到暂存区域遇到问题,报错如下:warning: LF will be replaced by CRLF in hellogit.rb.The file will have its original line endings in your working directory.解决办法,见:3、将暂存区域的文件提交到仓库中:git log 查看提交历史4.5、直接添加到仓库(不暂存) git自动完成其中
9、的暂存过程原理图如下: 操作示例: 4.6、删除一个文件 1、删除文件,删除系统中的文件 rm README2、从Git中删除文件,从追踪中删除该文件,让Git不再追踪该文件,注意:文件依然被记录在Git的仓库历史中(即前一个版本中) git rm README 3、提交操作 git commit -m “delete README” 操作示例: 查看历史版本,操作示例: 4.7、重命名一个文件 hellogit.rb helloworld.rb 重命名文件(完成重命名到提交到仓库)git mv hello.rb helloworld.rbgit commit -m“rename hellogit.rb” 第一条指令相当于执行了下面三条命令:1、git mv hello.rb helloworld.rb2、git mv hellogit.rb3、git add helloworld.rb 操作示例: 5、Git远程仓库简介 原理: Git访问支持4种协议: Local 把当地一个路径当做远程仓库,进行提交 SSH 流行 Git 效率最高 HTTP/HTTPS 用于开放式的项目,开源等常用的Git远程仓库实现1,使用现有的Git网络仓库服务 比如,gitHub/bitbucket2,搭建自己的Git仓库服务器A、进一步学习参考资料
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2