持续集成与持续交付(2)——版本控制git工具

https://git-scm.com/book/zh/v2

关于版本控制

  • 本地版本控制系统

许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好处就是简单,但是特别容易犯错。
有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。

为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异
在这里插入图片描述

  • 集中化的版本控制系统

接下来人们又遇到一个问题,如何让在不同系统上的开发者协同工作? 于是,集中化的版本控制系统(Centralized Version
Control Systems,简称 CVCS)应运而生。 这类系统,诸如 CVS、Subversion 以及 Perforce
等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
多年以来,这已成为版本控制系统的标准做法。
在这里插入图片描述 事分两面,有好有坏。 这么做最显而易见的缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。

  • 分布式版本控制系统

于是分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。 在这类系统中,像
Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,
而是把代码仓库完整地镜像下来,包括完整的历史记录。
这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。
因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

在这里插入图片描述
Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。

已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
在这里插入图片描述

实验步骤:

.git目录是git跟踪管理版本库的,没事别瞎溜达!

安装Git:
# yum install -y git

获取 Git 仓库通常有两种方式:
将尚未进行版本控制的本地目录转换为 Git 仓库。
从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone 

初始化版本库:
$ mkdir demo
$ git init
	Initialized empty Git repository in /home/git/demo/.git/ 
$ ls .git/
	branches  config  description  HEAD  hooks  info  objects  refs

	

在这里插入图片描述
在这里插入图片描述

状态简览
$ git status -s
 M README #在工作区修改,还未提交到暂存区
MM Rakefile ##该文件已经修改并提交到暂存区,但在工作区进行了再次的修改
A  lib/git.rb #首次进行跟踪操作
M  lib/simplegit.rb #已修改,并提交到暂存区
?? LICENSE.txt #新建的文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

忽略文件
$ cat .gitignore
.*		//忽略所有隐藏文件
/test		//只忽略当前目录下的test文件
build/		//忽略任何目录下名为 build 的文件夹

在这里插入图片描述

在这里插入图片描述

查看已暂存和未暂存的修改
$ git diff

在这里插入图片描述

跳过使用暂存区域
$ git commit -a -m 'added new benchmarks'

在这里插入图片描述

移除文件
$ git rm PROJECTS.md
$ git rm --cached README


在这里插入图片描述

重命名文件
$ git mv README.md README

其实,运行 git mv 就相当于运行了下面三条命令:

$ mv README.md README
$ git rm README.md
$ git add README

在这里插入图片描述

查看提交历史
$ git log
$ git log -p -2
$ git log --stat
$ git log --pretty=oneline

在这里插入图片描述
在这里插入图片描述

取消暂存的文件
$ git reset HEAD README.md

在这里插入图片描述

版本回退:
$ git reflog
$ git reset --hard efa267a

在这里插入图片描述

git使用

远程仓库:注册github帐号,并新建一个仓库:
在这里插入图片描述
推送本地仓库内容到github:

$ git remote add origin https://github.com/westos007/git.git								//关联远程仓库
$ git push -u origin master		//第一次推送需要加 -u参数

在这里插入图片描述
使用https方式推送每次需要输入用户名和密码,如果不想麻烦的话采用ssh方式:
$ ssh-keygen -t rsa -b 4096 -C “yakexi007@westos.org”
生成本地密钥,并上传公钥到github:

在这里插入图片描述
克隆远程仓库:$ git clone git@github.com:westos007/gittest.git
在这里插入图片描述

搭建私有仓库

(1)下载gitlab
在这里插入图片描述
(2)编写配置文件
在这里插入图片描述
在这里插入图片描述
登录gitlab(//用户:root 第一次登录需要强制修改密码)
在这里插入图片描述
新建项目:
在这里插入图片描述
添加ssh密钥:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值