• 0
  • 0
分享
  • 初识分布式版本控制系统Git——软件测试圈
  • 曼倩诙谐 2022-11-30 13:32:33 字数 2728 阅读 2197 收藏 0

  2022软件测试行业前景如何?结果你来预测。链接:http://vote.51testing.com/  (笔给你,你来填~)


  初识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)设置用户信息,以下命令:

git config --global user.name “”
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

图片 1.png

  可逐项检查,如:

git config username


图片 2.png

  获得帮助

  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仓库的骨干。这时,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。

  如图所示:


图片 3.png

图片 4.png

图片 5.png

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

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

git add *.c
git add LICENSE
git commit -m ‘initial project version’

  如图所示:

图片 6.png

  这样已经得到了一个存在被追踪文件与初始提交的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文件夹,会发现所有项目文件已经在里面了,准备就绪等待后续的开发和使用。

  如下图:

图片 7.png

图片 8.png

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

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

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

  如下图:

图片 9.png

图片 10.png

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

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

  记录每次更新到仓库

  执行命令:

git commit -m  “描述”

图片 11.png

  查看提交历史

  执行命令:

git log

图片 12.png

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

git log --stat

图片 13.png

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

图片 14.png

  以下表格引自官网:

图片 15.png

  感谢大家的阅读,希望你们能从中有所收获!



作者:枫叶    

来源:http://www.51testing.com/html/44/n-7793944.html


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一段声称展示 iPhone 15 Pro 保护壳的新视频清楚地显示了静音开关是如何被"动作"按钮取代的。自 Apple Watch Ultra 推出该功能以来,有关新控制按钮的传言越来越多。继泄露 iPhone 15 普通系列的颜色之后,可靠的泄密者 Sonny Dickson 又在一段新视频中展示了 iPhone 15 Pro。  不过,手机壳上的"操作"按钮非常清晰,位于音量控制上方,取代了原来的静音开关。  早在 2022 年 10 月,分析师郭明錤(Ming-Chi Kuo)就声称,iPhone 15 Pro 上的所有控制按钮(音量和静音)都...
            0 0 1049
            分享
          •   在日常开发、测试中,数据库由于存储了大量业务数据而成为整个系统中极为重要的关键节点,作者在前期发表的《信息泄漏防不胜防!终于有测试人关注信息安全了》一文中对Oracle数据库的透明数据加密技术(Oracle TDE)进行了详细阐述,本文将从数据库的访问控制角度对Oracle、Mysql、Gbase三种常见关系型数据库(RDBMS)的黑白名单配置方法进行说明,方法很简单,但却很实用,希望能对开发、测试及运维人员有所帮助。  一.Oracle数据库黑白名单配置方法  1.测试环境版本说明:Suse Linux 11 SP2 + Oracle 12.1.0.2  2.涉及文件...
            13 14 3075
            分享
          • 软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。一、软件的分类1、按照功能划分:【系统软件】:如操作系统、数据库管理系统,各种驱动软件等;【应用软件】:如Office、有道翻译、QQ等;2、按照技术结构划分:【单机版本】:如Office,画图工具等;【C/S结构软件】:如QQ、微信等;【B/S结构软件】:如新浪、搜狐、google等;3、按照使用终端划分:【PC端】:电脑版QQ等安装在电脑端的软件;【移动端】:如手机版QQ、微信等安装在移动端的软件;4、按照用户划分:【产品软件】:Office、财务处理软件、360卫士等;【项目软件...
            1 1 2056
            分享
          • 源自于一本讲性能测试书的思考?书中内容:性能测试是一门富有挑战的、有深度的、综合性的学科。那我想怎能只局限于说性能测试,我倒认为所有的测试类型都是一门富有挑战、有深度的、综合性的学科,只要你想做到顶尖都没有那么容易,而我们正在做的的UI自动化测试也是如此。很多性能测试初学者总觉得性能测试就是写个脚本,弄几台机器测一测,出个报告就行了。通常关注"并发多少""响应时间多少""能跑通吗"这些问题。认为并发越大,响应时间越快,那性能一定就越好。性能测试不仅仅是录制脚本或编写程序,基本的性能理论、性能执行的原则还是要了解的。同样的脚本,不同的人...
            0 0 1032
            分享
          • 一、功能测试用例的设计举例:(一)我想要回家,让你给我买一张票,然后设计测试用例答案:确定需求(回家回哪,需要什么票,买什么时候的票)开始测试功能测试(我去买票(买火车票,飞机票),买到票(什么时候),回来给你);可靠性测试(我去买票过程中被撞死了,票买不到怎么办,延期了,买那个点的票没了怎么办让我帮他买票的人的身份,比如是否有特殊优待,如军人,1米2以下儿童等,身份证丢了,或者票丢了,责任划分);可维护性测试(票是否可保存完好);兼容性(还不同人的去买,我中间招人去买,我坐车走路);算法测试(我通过不同的渠道买票花费的时间);竞品测试(别的人怎么买的票);安全性测试(身份信息保密);性能测试...
            0 0 1636
            分享
      • 51testing软件测试圈微信