技术干货分享:初识分布式版本控制系统Git

初识Git版本控制

自动化测试代码反复执行,如果借用持续集成工具会提高测试效率,那么需要我们把自动化测试代码发布到正式环境中,这时候用Git版本控制工具高效、稳定、便捷。

分布式版本控制

Git可以把代码仓库完整地镜像下来,有完整的历史记录,它可以与远端代码库进行交互。

简史

Git诞生于2005年,速度快,极适合管理大项目。

Git是什么

其他版本控制系统如SVN,是随时间变化的差异性文件比较,在某时间段某些文件进行更新。

Git是快照流,存储项目随时间改变的快照,几乎大部分操作都只需要访问本地文件和资源。保证完整性,用哈希Hash,一般只添加数据,不删除。

Git三种状态:

  • 已修改:在工作区修改文件,但没保存到数据库

  • 已暂存: 在暂存区对已修改的文件做标记,使其包含在下次提交的快照中

  • 已提交:在Git目录安全地保存数据到本地数据库

基本Git工作流程:

①工作区修改文件;

②暂存区将下次提交的更改选择性暂存,修改部分添加到暂存区;

③提交更新,找到暂存区的文件,将快照永久保存在Git目录。

命令行

所有人都有命令行工具,会命令行则应该会GUI。

安装Git

本次实践安装的最新版2.36.0,官网下载windows版本https://git-scm.com/download/win。

初次运行Git前的配置

1)设置用户信息,以下命令:

  1. git config --global user.name “”

  2. git config --global user.email “”

如果想给特定项目设置用户信息,则在该项目目录下运行无--global的命令。

2)设置文本编辑器,如未配置,Git会使用操作系统自带的编辑器。

设置notepad++为文本编辑器:

git config --global core.editor “’d:\dev\notepad++\notepad++.exe” -multiInst -notabbar -nosession -noPlugin”

3)检查配置信息:

git config --list

可逐项检查,如:

git config username

图片

获得帮助

git help +Verb,例如git help config。如果不用全面只需快速参考,使用命令git +Verb -h,例如git add -h。

Git基础

获取Git仓库

两种获得Git项目仓库的方式:

① 对尚未进行版本控制的本地目录转换为Git仓库;

② 从其他服务器克隆一个已存在的Git仓库。

(1)对已存在目录中初始化仓库

如果有一个尚未进行版本控制的项目目录,想要用Git控制它,那么需要进入该项目目录中。

在Windows上:

cd c/user/my_project

之后执行:

git init

该命令将创建名为.git的子目录,这个子目录含有你做初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。这时,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。

如图所示:

图片

图1

图片

图2

图片

图3

如果在一个已存在文件的文件夹(非空文件夹)中进行版本控制,应该开始追踪这些文件并进行初始提交。

可以通过git add命令指定所需的文件进行追踪,然后执行git commit:

  1. git add *.c

  2. git add LICENSE

  3. git commit -m ‘initial project version’

如图所示:

图片

图4

这样已经得到了一个存在被追踪文件与初始提交的Git仓库。

(2)克隆现有的仓库

如果想获得一份已经存在了的Git仓库的拷贝,比如说,想为某个开源项目贡献自己的一份力,这时就要用到git clone命令。

如果对其他VCS系统(比如Subversion)很熟悉,请留心以下所使用的命令是“clone”而不是“checkout”。这是Git区别于其他版本控制系统的一个重要特性,Git克隆的是该Git仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。

当你执行git clone命令的时候,默认配置下远程Git仓库中的每一个文件的每个版本都将被拉取下来。实际上,如果服务器磁盘坏掉了,通常可以使用任何一个克隆下来的用户端来重建服务器上的仓库(虽然可能会丢失某些服务器端的hook设置,但是所有版本的数据仍在)。

克隆仓库的命令是git clone。比如,要克隆Git的自建项目HTMLTestRunner,可以用下面的命令:

git clone https://github.com/mingming1205/HTMLTestRunner

这会在当前目录下创建一个名为“HTMLTestRunner”的目录,并在这个目录下初始化一个.git文件夹,从远程仓库拉取下所有数据放入.git文件夹,然后从中读取最新版本的文件的拷贝。

如果打开这个新建的HTMLTestRunner文件夹,会发现所有项目文件已经在里面了,准备就绪等待后续的开发和使用。

如下图:

图片

图5

图片

图6

如果想在克隆远程仓库的时候,自定义本地仓库的名字,可以通过额外的参数指定新的目录名:

git clone https://github.com/mingming1205/HTMLTestRunner myhtmltestrunner

这会执行与上一条命令相同的操作,但是目标目录名变成了myhtmltestrunner。

如下图:

图片

图7

图片

图8

Git支持多种数据传输协议。以上的例子使用的是https://协议,不过也可以使用git://协议或者使用 SSH 传输协议,例如user@server:path/to/repo.git。

至于所有这些协议在服务器端是如何配置使用,以及各种方式之间的利弊请查看“在服务器上搭建 Git”的介绍。

记录每次更新到仓库

执行命令:

git commit -m  “描述”

图片

查看提交历史

执行命令:

git log

图片

如果附带一系列总结的文字,执行命令:

git log --stat

图片

如果限制日志查看数量,执行命令git log -p -2,当退出log时,在冒号“:”后面敲q即可。

图片

以下表格引自官网:

图片

 

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 455787643,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

总结:感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/702209.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

心理咨询系统源码|心理咨询系统开发|心理咨询系统

心理咨询系统,作为一种集现代化科技与专业心理服务于一体的工具,正逐渐渗透到我们生活的各个角落。它不仅为个人提供了便捷的心理支持,还为企业和组织带来了全新的管理方式。下面,我们将深入探讨心理咨询系统的可应用范围及其带来…

Visual Studio扩展开发

对于Roslyn(编译平台)的扩展 内容来源:https://learn.microsoft.com/zh-cn/dotnet/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix 创建项目 解决方案项目介绍 Resources.resx介绍 填入的内容会在错误列表中显示

Github入门教程,适合新手学习(非常详细)

前言:本篇博客为手把手教学的 Github 代码管理教程,属于新手入门级别的难度。教程简单易操作,能够基本满足读者朋友日常项目寄托于 Github 平台上进行代码管理的需求。Git 与 Github 是一名合格程序员 coder 必定会接触到的工具与平台&#x…

JAVA代码审计之SQL注入代码审计

前言 SQL注入漏洞是对数据库进行的一种攻击方式。其主要形成方式是在数据交互中,前端数据通过后台在对数据库进行操作时,由于没有做好安全防护,导致攻击者将恶意代码拼接到请求参数中,被当做SQL语句的一部分进行执行,…

Stack详解(含动画演示)

目录 Stack详解1、栈数据结构动画演示2、Stack的继承体系3、Stack的push (入栈)方法4、Stack的pop (出栈)方法5、Stack是如何利用Vector实现栈数据结构的?6、自己实现栈(不借助JDK提供的集合)7、自己实现栈(借助JDK提供的集合)利用 ArrayDeque 实现高性能的非线程安…

SyntaxError: Non-UTF-8 code starting with ‘\xbd‘ in file错误解决

在运用python的pandas和numpy的内容环境下,运行代码时发生以下错误: C:\ProgramData\Anaconda3\python.exe D:/zafile/py数据分析与应用/数据分析代码/14.2、紧急电话数据分析.pyFile "D:/zafile/py数据分析与应用/数据分析代码/14.2、紧急电话数据…

7.枚举和模式匹配

一、enum枚举 1.1 定义枚举类型和对应的数据 //定义枚举 #[derive(Debug)] enum IpAddrKind{IPv4,IPv6, }struct Ipaddr{kind: IpAddrKind, //设置kind为IpAddrKind的枚举类型address: String, }fn route(ip_addr: &Ipaddr){println!("ip_type {:#?}", ip_a…

如何基于Nginx配置代理服务器实现邮件告警

当代企业信息化系统建设中,将内网与公网进行隔离是一种非常常见的措施,它可以有效保护企业内部数据不被外泄,有助于企业构建一个更加安全的网络环境,保护企业资产和用户隐私。但另一方面,内网与公网隔离也会带来一些问…

【STM32】输入捕获应用-测量脉宽或者频率(方法2)

链接:https://blog.csdn.net/gy3509/article/details/139629893?spm1001.2014.3001.5502,讲述了只使用一个捕获寄存器测量脉宽和频率的方法,其实测量脉宽和频率还有一个更简单的方法就是使用PWM输入模式,PWM输入模式需要占用两个…

推挽式B类功率放大器的基本原理

单晶体管 B 类放大器(图 1)使用高 Q 值储能电路作为负载来抑制高次谐波分量。通过采用高 Q 谐振电路,输出电压仅包含基波分量,使放大器能够忠实地再现输入信号。尽管集电极电流是半波整流正弦波,但高 Q 值储能电路将谐…

Python基础教程(十):装饰器

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

Non-aligned Supervision for Real Image Dehazing

原文链接:https://www.semanticscholar.org/paper/Non-aligned-supervision-for-Real-Image-Dehazing-Fan-Guo/7595d39e71ae58343e8728fc1af0e18ffe38218b 数据集:https://www.cityscapes-dataset.com/ 真实的图像去雾的非对准监督 摘要 由于天气条件…

淘宝评论数据信息接口

淘宝评论API接口是一种用于获取淘宝用户评论信息的接口,联讯数据可以帮助商家和消费者获取到商品的评价信息,以便更好地了解商品的质量和用户体验。以下是关于淘宝评论API接口的一些内容: 一、接口功能 淘宝评论API接口提供了商品评价信息的…

doc 和 docx 文件的区别

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

第32章-SDN概述

1. SDN的由来 2. SDN的基本概念 1. SDN的由来 计算机产业的发展: 从 1946 年第一代电子管计算机面世到如今,计算机的形态也发生了翻天覆地的变化。从大型机到个人 PC,计算机在不断地推陈出新,且创新发展的势头越加猛烈。究其原因…

信号处理中的相位

相位 用来描述波动或振动状态。 在信号处理和通信领域,相位通常指的是信号相对于某一参考信号的延迟。 在周期性信号中,相位通常以角度(弧度或度)来表示,表示信号的周期性变化相对于参考信号的位置。 在非周期性信号中…

教你一招,告警恢复时如何拿到恢复时的值?

Prometheus 生态的原生做法,由于阈值是放在 promql 中的,恢复时的消息中难以拿到恢复时的值,夜莺 v7.0.0.beta10 版本开始,提供了一种较为简单的内置方式,解决这个问题。下面我们就来看一下如何实现这个能力。 升级方…

医疗设备维修培训服务的安全性和可靠性

当前,医疗设备维修服务行业市场已经形成了一个庞大的产业链,涵盖了设备检测、故障诊断、维修维护等多个环节。随着医疗设备的日益复杂和高端,对专业维修服务的需求也在不断增加。因此,市场上涌现出了一批专业的医疗设备维修服务提…

Anaconda3 下载安装卸载

1、下载 官网链接:Download Now | Anaconda Step1:进入官网 Anaconda | The Operating System for AI Step2:进入下载页面,选择要Anaconda软件安装包 2、安装 Step1: 点击 Anaconda3-2024.02-1-Windows-x86_64.exe 安装包进行安…

Windows 11中查找和删除旧文件的几种方法,总有一种适合你

序言 如果你的电脑存储空间不足,最好的办法就是找到并删除旧的、不需要的文件。Windows 11提供了多种方法来查找这些占用存储空间的项目,我们将在本指南中向你展示这些方法以及如何使用它们。 使用存储感知 存储感知是Windows 11的内置功能,可帮助自动清理旧文件。你可以…