版本控制系统是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。在一个项目团队中,开发人员需要对代码做版本控制,而测试人员编写自动化测试脚本后,同样需要对这些内容的版本做维护和管理。今天这篇文章就来介绍一下:比较热门的版本控制系统Git,教你快速掌握Git"黑魔法"!
what:是什么
git是一个代码版本管理的工具,支持的代码仓库有github[],gitee[],coding[]等云端协作的开发平台,具体不在这里介绍。
Git、GitHub和GitLab区别
在介绍具体操作之前,我们先来了解:Git、GitHub和GitLab究竟是什么,这三者之间有什么关系。
Git:正如上面提到的,是一个版本控制系统,它是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。Git的发明者正是Linus Torvalds--Linux操作系统的开创者。
GitHub:Github和Git是两回事。Github是在线的基于Git的代码托管服务。GitHub是2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,但是只有付费账户可以创建私有的代码仓库。
GitLab:在很大程度上GitLab是仿照GitHub来做的,它们都是在线的基于Git的代码托管服务,提供了分享开源项目的平台。但是GitLab解决了GitHub付费的问题,可以创建私人的免费仓库(PS:GitLab可免费创建私有代码仓库,但是更高级的服务仍要收费)。相较于GitHub,GitLab允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步地提升安全性;可以设置获取到团队整体的改进进度;通过innersourcing让不在权限范围内的人访问不到该资源。
类似的工具或者命令?
·在Windows平台下,可以使用git bash;
·在Linux/Mac平台下,直接使用git命令;
why:为什么用
当参与测试平台的开发,代码管理,多人协作的时候,就发挥作用,记录每一份代码的提交记录,前后代码对比,快速知晓不同时期的代码提交的参与人和备注信息。
how:怎么用
以下在Mac平台下进行操作讲解,有需要可以补充windows的操作:
·拥有一个自己的代码仓库;
小编使用的是个人仓库,免费可以学习;例如:gitee
·创建一个master然后进行本地初始化
·初始化前,需要自己进行创建ssh链路的验证,保证代码可以保密传输
遇到403,remote: You do not have permission push to this repository
fatal: unable to access 'xx.git/': The requested URL returned error: 403
解决方法:profile/sshkeys
·如何生成SSH公钥?
公钥的作用:不需要每一次操作git pull/push都需要账号密码;
查看mac的ssh公钥存放位置
打开命令窗口,进入.ssh目录:cd ~/.ssh
找到 id_r文件:ls
查看公钥:cat id_r || vim id_r
·若没有pub文件,只能自己生成
生成
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
使用登陆的账号邮箱和密码进行生成public key
按照提示完成三次回车,即可生成 ssh key,通过查看~/.ssh/id_r文件内容,获取到你的 public key
查看
cat ~/.ssh/id_r
·查看到电脑里的公钥文件,id_r
·将此公钥内容复制到gitee的公钥上,自动生成后进行操作
·查看SSH公钥列表
·然后确认测试ssh,分支创建完成
回到个人电脑的git目录下,进行权限操作;
添加公钥完成后进行测试公钥(测试SSH链接)
ssh -T git@gi
当终端提示welcome to Gi,yourname!表示链接成功
·使用的是ssh协议:已经在本地的电脑建立安全的公钥,不需要每次输入密码。
git clone git@gi:devs-tester/test-demo.git
·使用的是https协议: 重新进行推送本地的代码到主干上,输入对应的账号和密码。
git clone devs-tester/test-demo.git
or
git push origin master(默认协议https)
·新建helloword文件,提交代码和备注信息
touch
创建空文件,并命名为
echo "hello world" >
在文件填写内容"hello world"
git add
添加文件到暂存区
git commit -m "create hello file"
提交文件并进行备注说明
git push origin master
推送本地的文件到远程主干
·检查远端的仓库是否真正推送?
总结:
·学习如何使用git命令创建仓库
·使用ssh和https进行下载代码至本地
·推送本地代码到云端服务器并备注说明
我是谁?
我是一名从事了多年软件测试的老测试员,今年年初我花了一个月整理了一份最适合2021年学习的软件测试学习干货,可以送给每一位对软件测试感兴趣的小伙伴,想要获取的可以关注+私信:测试,即可免费获取。