版本管理从早期的svn到现在的git,发生了不小的变化。作为测试不光要持续提高测试技能,也要持续提升其他方面的知识,都说测试是六边形战士,真的是一点都不假。一入测试深似海,下班已是夜三更。
一、知识科普
- 2005年4月3日:Linus 开始开发 Git(Linux 的缔造者 Linus Torvalds )
- 2005年4月6日:Git 项目对外发布
- 2005年4月7日:Git 实现作为自身的版本控制工具
- 2005年4月18日:实现多分支合并
- 2005年6月16日:Linux 内核 2.6.12 发布,Git 已经可以用于维护 Linux 核心源码
- 2005年7月26日:Linus 功成身退,将 Git 的维护工作交给另一名 Git 的主要贡献者 Junio C Hamano
SVN 和 Git 的区别:SVN 是集中式的版本控制系统,而 Git 是分布式的。
集中式版本控制系统需要找一个服务器作为大本营,所有的代码都需要提交到服务器上进行统一的管理。当你需要对代码进行改动时,需要先从服务器上下载一份拷贝,修改完成之后,还需要上传回服务器。
在分布式版本控制系统中,大家都拥有一个完整的版本库,不需要联网也可以提交修改,所以中心服务器就显得不那么重要了。
二、理论基础
Git 记录的是什么?
如上,如果每个版本中有文件发生变动,Git 会将整个文件复制并保存起来。这种设计看似会多消耗更多的空间,但在分支管理时却是带来了很多的益处和便利。
git工作区域有三个,本地工作区Workspace,本地缓存区Index/Stage,远程服务器Remote。
本地工作区,相当于你电脑里的工作文件夹
本地缓存区,相当于隐藏在git工具里的一个隐藏文件夹,我们不可直接看到。这个也是和svn最大的区别。自己修改好的文件,确定要上传远程服务器的,要先提交到缓存区。
远程服务器,远程电脑里的文件夹,所有人推送上来的东西都会被存储在远程服务器上。
总的来说完整的git工作流程就是,每个人都在本地工作区工作,做好的工作提交到缓存区,然后选择推送,就可以把缓存区所有的东西推送到远程服务器。
关键点:记住所有自己修改的东西,一个个提交到缓存区,然后再推送到远程服务器,不是自己修改的东西,全部可以还原。
文件标识绿色和红色,安装了git的软件后,项目目录的文件夹以及子文件夹,以及文件都会有一个特殊的标识,分别是绿色的勾和红色的叹号。
例如
这两个标识的含义就是该目录下是否有文件被修改,绿色就是没有文件被修改,红色就是有文件被修改,文件上也会有类似的标识。注意:删除文件也是一种修改,所以可能你进去看到文件夹里看到的文件都是绿色,但是这个父文件夹却是红色,就是有个文件被你删除了!
分支:你可以理解成这个就是项目的镜像,是一个独立的世界,不同的分支里看到的世界是不一样的,所以克隆项目之后第一件事,就是切换到你需要的分支上。一个项目可以有很多的分支,分支之间可以通过合并的操作来完成分支之间的数据整合。这个可以用作项目管理的工具之一。
例如说:开发分支上进行工作,测试分支上进行测试工作,发布分支上进行打包工作,修复bug的分支进行bug修复工作,当bug修复完成并且通过了测试,代码就会合并回开发分支上。当然,git上有不同的工作流可以提供选择,就看我们项目的选择。
合并操作:合并操作就是把A分支的内容合并到B分支上,相当于把A分支上有,但是B分支上没有的东西移动到B分支上。这种内容的移动针对文本文件,可以自动合并完成,但是这种自动的合并并不能保证代码的正确性。合并操作也是冲突产生最频繁的操作!
冲突:冲突的意思就是一个文件不同的内容合并到了一起,例如说,同一行代码被不同的人修改之后,然后合并到了一起。或者美术或者策划的文件里有两个人修改了同一个文件,则必然会造成冲突,而且这种冲突没法通过文本文件的合并来解决,只能选择其中一份来解决冲突。因为不管是git和svn,能自动合并的都是文本文件。其他文件谈不上自动合并。
三、安装配置
安装包
1:Git-2.26.2-64-bit.exe
2:TortoiseGit-2.8.0.0-64bit.msi
3:TortoiseGit-LanguagePack-2.8.0.0-64bit-zh_CN.msi
链接: https://pan.baidu.com/s/1mtwA_nEi4ObyAPq9_GsFVQ?pwd=5p38 提取码: 5p38
1为git主体软件,高手一般装这个也可以直接使用,命令行方式,效率最高!
2为git图形界面操作软件,是一个壳工具,前提是先安装git主体软件才能使用,适合小白使用。
3为2的中文语言包,装了之后可以把2的界面改成中文。
安装
1、默认配置完成以上三个软件的安装
2、切换语言git语言
3、还没有git账号的先到https://github.com/申请一个git账号,使用个人名字,不建议使用昵称!
4、生成ssh钥匙:
打开电脑,使用快捷键 win+R,输入cmd回车,在弹出的窗口里输入一下命令:ssh-keygen -o -t rsa -C "你的邮箱" -b 4096
例如:ssh-keygen -o -t rsa -C "biekefu@jktom.com" -b 4096 这个邮箱就是注册git的时候的输入的邮箱。然后回车,然后会提示选择保存的地方,直接回车,会保存到默认的地方,每个人不同,例如说,我的电脑就是C:\Users\biekefu\.ssh这个地址。然后接下来会要求输入两次密码,会是一种看不到的密码输入的形式,不用在意,直接输入两次密码,并且回车,直到提示生成成功就可以了。回到C:\Users\你的名字\.ss这个目录看看有没生成id-rsa和id_rsa.pub,把压缩目录里的这个文件,覆盖到C:\Users\你的名字\这个目录下,然后把IdentityFile这一行修改成IdentityFile ~/.ssh/id-rsa
5、git网页ssh key配置登陆http://192.168.10.1:8081/(这个是项目内部地址,由技术搭建git时创建,这里作为举例),然后在用户设置里,
把步骤4里生成的id_rsa.pub这个文件用记事本打开,并且把里面的文本拷贝出来,粘贴到
- 这里,然后点击add key,完成公钥添加。
- 6、配置TortoiseGit,右击电脑空白的地方,选择TortoiseGit->setting,然后再git分页栏,输入自己的名字和邮箱,如下所示。
- 然后再network里配置好ssh client
- 然后环境配置就大功告成了!!!