Git技术实战

Git技术实战

目标:GitLab容器化搭建,Pycharm推送代码到Gitlab实现Jenkins+Pytest+Allure自动化测试,发送邮件

内容:

  • 1、Git技术的概述

  • 2、Git与SVN对比

  • 3、Git工作流程

    • docker技术实现
  • 4、Git环境搭建

    • GitHab
    • GitLab
    • 码云Gitee
    • docker技术搭建
    • 常用的Git代码托管服务
    • 本机Git操作环境
  • 5、Git常用命令

    • 1、 环境配置
    • 2、 获取Git仓库
    • 3、 工作目录、暂存区以及版本库概念
    • 4、 Git工作目录下文件的两种状态
    • 5、 本地仓库操作
    • 6、 远程仓库的使用
    • 7、 分支
    • 8、 标签
  • 6、Pycharm配置Git环境

  • 7、Jenkins关联Git操作

  • 8、自动化测试CI实战


1、Git技术的概述

2、Git与SVN对比

一个开源的框架–需要操做什么流程,下载对应的插件

3、Git工作流程

  • 1、克隆远程仓库到本地

    • clone
  • 2、在本地仓库中checkout代码–进行编写

  • 3、在提交前到本地仓库前–需要到暂存区 index stage

  • 4、提交到本地仓库、

    • commit
  • 5、推送到远程仓库里

    • push
git pull:从远程仓库获取最新代码到本地仓库,直接就合并到本地仓库!
git fetch:从远程仓库获取最新代码到本地仓库,但不会自动合并merge,需要手动合并!
 为了更好的学习Git,我们需要了解Git相关的一些概念,这些概念在后面的学习中会经常提到
 #版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
 #工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
 #暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存
 修改文件的地方

4、Git环境搭建

  • 1、常用的Git代码托管服务—远程仓库

  • GitHub

    • 它的服务器在国外
    • 下载特别慢–可能早上早点从github下载比晚上下要好
    • 一般开源的项目多
  • GitLab

    • GitLab 解决了这个问题,你可以在上面创建私人的免费仓库
    • 如果公司自己的服务器搭建仓库,首选gitlab
  • 码云Gitee

    • 是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快

4.1 gitlab容器搭建

 #由于是docker镜像运行, 所以我们需要把gitlab的配置, 数据, 日志存到容器外面, 即将其挂载到宿主机。先准备三个目录:
 cd /srv #切到srv目录
 mkdir gitlab#创建gitlab文件夹
 cd gitlab
 mkdir config logs data
 
 docker run -di -p 443:443 -p 9001:80 -p 8022:22 --hostname 虚拟机的Ip --name mygitlab --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab -v /etc/localtime:/etc/localtime:ro --privileged=true  gitlab/gitlab-ce:13.9.2-ce.0
 
 

1、进入gitlab

输入你电脑ip:9001就可进入gitlab

image.png

默认用户是root,刚进入时要修改密码不少于八个字符,修改密码为xintian123456,再次输入xintian123456。

进入登录界面,输入用户名root密码xintian123456点击登录即可。

image.png

2、报错信息502解决方案

查看容器id,输入docker ps

image.png

 docker exec 77(容器id) gitlab-ctl reconfigure#容器里启动服务
 systemctl stop firewalld#关闭防火墙

4.2 git本机客户端

1.官网下载git客户端https://git-scm.com/downloads,点击download。

image.png

2.安装git客户端

image.png

3、选择好安装路径,然后点击“Next

image.png

4、选择安装组件

image.png

5、菜单文件夹–可以默认!我的选择“Don’t create a Start Menu folder”

image.png

6、选择编辑器,默认使用vim作为编辑器

image.png

7、修改系统的环境变量—建议选择默认、修改系统的环境变量—建议选择默认

image.png

8、配置行尾结束符(个人选择第三个了;可以根据自己情况而定)我选择默认。

image.png

9、配置终端仿真

image.png

10、选择默认的“git pull”行为

image.png

11、额外的配置选项

image.png

12、实验配置选项

image.png

13、安装完成。

image.png

 #1- 新建一个文件夹--作为本地仓库  sqlocal
 #2- 在这个文件夹里--右键--点击  git bash here--git终端
 #3- 查看Git客户端版本
 git --version
 
 #4- 环境配置---选配
 git config --global user.name "xt"
 git config --global user.name.email "xt@qq.com"
 
 #5- 在本地创建一个本地仓库
 #在前面新建的文件夹sqlocal下--在这个文件夹里--右键--点击  git bash here--git终端
 git init
 
 #6- 克隆远程仓库
 git clone  远程仓库的url   默认是80    如果修改过端口,请一定加上自定义的端口
 
 当输入远程仓库的账号与密码时候,如果输入错误,你下次连就连不上
 
 #7- 使用pycharm关联gitlab--推送我们外卖项目代码工程

使用TortoiseGit管理文件版本

TortoiseGit是一款开源的Git图形界面工具,使用TortoiseGit可以简化Git相关的操作(本质上还是执行的Git 相关命令)。 TortoiseGit下载地址: https://tortoisegit.org/download/

下载完成可以得到如下安装程序

通过Git命令完成了Git的常用操作,通过TortoiseGit来完成如下操作:

◆ 创建仓库

◆ 克隆仓库

◆ 将文件添加到暂存区

◆ 提交文件

◆ 推送本地仓库至远程仓库

◆ 拉取代码

◆ 创建分支

◆ 切换分支

◆ 合并分支

直接双击安装即可,安装完成后在桌面(也可以是其他目录)点击右键,看到如下菜单则说明安装成功

4.3 gitlab新建工程

image.png

image.png

5、Git常用命令

使用jenkins实现自动化测试

 #目前方案没有gitlab,后续采用该方案
 #1- 先把项目的自动化脚本文件夹放到--宿主机与容器挂载的目录下
 #使用xftp工具,放到--宿主机与容器挂载的目录下,容器下查看下
 cd /var/jenkins_nome
 ls
 #2- jenkins创建工程
 #1- 新建任务
 #2- 构建一个自由风格的软件项目
 #3- 进入工程--点击配置
 #4- 选择构建--操作shell
 #5- 增加邮件--构建后操作
 
 
 

6、Pycharm配置Git环境

Pycharm配置Git环境,有2个方案:

  • 1、可以关闭现有工程—file—close project(文档使用方法)
  • 2、菜单栏–CSV也可以操作

image.pngimage.png

注意:docker部署要加上端口如http://192.168.67.141:9001/root/songqinadmin.git

点击clone

image.pngimage.png

新建需要提交到远程仓库的文件,点击ok

image.png

工程右键,找到git点击提交工程

image.png

image.png

点击push

image.png

image.png

查看gitlab仓库发现提交成功

image.png

7、Jenkins关联Git操作

目标:需要把gitlab与jenkins关联起来

  • 1、需要保证这2个服务都是ok
  • 2、jenkins版本选择git
  • 3、gitlab只要有设置好的事件触发,会webHook通过一个url post方法通知jenkins
  • 4、jenkins收到触发信息,他需要执行构建操作—最新的代码会自动从gitlab会获取,执行构建

image.png

搜索gitlab,allure,选择直接安装。

image.pngimage.png

重启docker镜像

 docker ps -a

image.png

 docker restart fef91a3db6d2(容器id)

重新进入jenkins,配置JDK丶git丶allure路径,直接按给的填写即可

image.png

JAVA_HOME路径/usr/local/openjdk-8

image.png

git路径/usr/bin/git

image.png

allure路径/opt/allure-2.13.5

image.png

新建工程并配置选项。

image.pngimage.png

选择git添加用户信息

image.png

image.pngimage.pngimage.png

为了安全起见生产token值

image.png

打开gitlab仓库配置hooks

image.png

然后测试一下是否调通

image.pngimage.png

8、自动化测试CI实战

10、Jenkins 实现构建

 #!/bin/bash
 rm -rf allure-results
 cd DeliverySystem/test_case
 pytest -sq --alluredir=${WORKSPACE}/allure-results
 cp DeliverySystem/environment.properties ${WORKSPACE}/allure-results/environment.properties
 exit 0

9、安装完jenkins后发现时区不对

解决:打开jenkins的【系统管理】—> 【脚本命令行】,在命令框中输入一下命令【时间时区设为 亚洲上海】:

 System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

点击【运行】,可以看到时间已正常,如图。

img

后续:有时候打开又发现时间变了,又是相隔8个小时的utc,每次都要在命令行输入也是很麻烦了,打算这次一次性解决。

10、gitlab的ip地址修改

配置GitLab主机名

1、修改/srv/gitlab/config/gitlab.rb

imgimage.png

 vi /srv/gitlab/config/gitlab.rb#也可以直接使用ftp的记事本直接修改

把external_url改成部署机器的域名或者IP地址

image.png

2、修改 /srv/gitlab/data/gitlab-rails/etc/gitlab.yml

image.png

找到关键字 * ## Web server settings *

image.png

将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址

3、重启容器

 docker restart 容器id

11、宿主机时间同步问题

宿主机linux查看时间

 [root@localhost etc]# date
 2020年 12月 06日 星期日 04:38:43 CST
 

时区是对的,只是时间不对

安装ntp

 yum install  ntp  #安装ntp服务

同步阿里时间

 ntpdate  ntp1.aliyun.com

注意事项:

  • 可能网络会断开,请重新reboot下linux
  • 虚拟机的ip可能会改变

2、容器内部时间同步

 docker cp /etc/localtime ec327fc07985:/etc/localtime
 
 #抛异常
 Error response from daemon: Error processing tar file(exit status 1): invalid symlink "/usr/share/zoneinfo/UCT" -> "../usr/share/zoneinfo/Asia/Shanghai”
 
 #解决办法
 docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime
 
 #重启容器
 docker restart 容器id

1、gitlab push事件—触发jenkins发生构建—第7次构建

2、jenkins会去gitlab拉取最新的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 廖雪峰是知名IT技术博主,其博客涉及广泛的技术领域,如Python、Java、C等编程语言和Web开发、软件架构等方面。其中他所编写的《Git》文档PDF是一份非常优秀的学习资料,详尽地介绍了Git版本控制系统的所有基本概念和操作方法。 这份文档从Git的历史、安装到基本使用,再到高级操作如分支合并、远程仓库等方面全面介绍。其中,教程内容通俗易懂,配有大量实例和详细说明,非常适合初学者学习。此外,文档还包含了Git常见问题解答、Git团队开发流程等实战部分,方便学习者快速上手。 最重要的是,廖雪峰的学习资料都是免费共享的,方便广大学习者免费获取高质量的学习资料。因此,广大读者可将这份文档作为Git学习的必备之物进行学习和参考。 总之,廖雪峰编写的《Git》文档PDF是一份非常好的Git学习资料,内容详尽、操作实践性强,无论是初学者还是有经验的专业人士都可以从中获益。 ### 回答2: 廖雪峰git文档PDF是一份介绍Git版本控制工具的详细手册,由著名IT培训师廖雪峰所编写。这份文档非常详细,适合初学者和资深开发者学习和使用Git。文档内容包括Git的基本概念、安装、配置、使用、命令行操作、分支管理、标签管理、远程仓库协作等方面。廖雪峰通过实例讲解Git的应用和操作步骤,帮助读者更好地理解Git的原理和使用方法。同时,在文档中还介绍了Git常见的误区和解决方案,帮助读者更好地掌握Git技能。该文档PDF形式方便读者离线学习和查看,同时提供Git学习相关的资料和链接,方便读者深入学习Git。总之,如果你想学习Git版本控制工具,廖雪峰git文档PDF是一个非常好的学习资源。 ### 回答3: 廖雪峰是国内知名的IT技术博主,他在其个人网站上发布了一份Git用户手册PDF文档,供广大程序员学习和使用Git版本控制工具。 该文档涵盖了Git的基础知识和常用操作,包括如何安装Git、创建仓库、添加文件、提交修改、合并代码等方面的内容。此外,文档还介绍了Git的分支管理和团队协作功能,这些功能是Git在实际项目中使用时必不可少的。 对于刚入门Git的开发者而言,廖雪峰的Git用户手册PDF提供了一个很好的学习工具,它的阅读材料简单易懂,适合广大用户阅读学习。 尤其需要指出的是,文档配有丰富的实战操作和详细的注释说明,让读者更好的理解和应用Git版本控制工具,为版本控制提供了实用的手册。 总之,廖雪峰的Git用户手册PDF是一份专业而实用的Git学习材料,对于广大IT从业者更好的使用和掌握Git工具有很大的帮助。值得IT爱好者们去学习借鉴。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值