一、Git架构
1. Git源码管理架构图
从架构图可以看到,git是分服务器和客户端两大部分。(也就是远程与本地分布式管理源码)
2. git服务器
一般服务器可以选择自己在Linux上面搭建,也可以选择使用开源的,如github、gitee等。
如有同学需要自己搭建git服务器,可以找Linux安装git的相关资料
当然我们一般学习可以使用gitee,当然文章也是推荐同学们使用gitee。
首先,注册gitee账号。https://gitee.com/
然后,新建仓库。
备注:新建仓库默认为私有仓库,如需改为公共仓库,可以创建后到管理里面更改
仓库地址:
3. git客户端
3.1 下载安装git客户端
1、各系统版本的git客户端下载地址 https://git-scm.com/downloads ,根据系统类型选择下载即可。
2、安装:
以windows为例,双击下载好的安装工具exe文件,所有选项保持默认,一路点击next直到完成安装即可。
安装完成后,在windows任意位置点击右键菜单出现,Git Bash Here 和 Git Gui Here 则安装成功可以使用了。
3、设置Git用户信息
在任意位置点击右键,选择Git Bash Here ,打开命令行 输入如下命令
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱地址"
3.2 生成git秘钥
在Git Bash中输入如下命令,生成公私钥对
ssh-keygen -t rsa -C "你的邮箱地址"
回车之后出现如下提示信息,意思是指定密钥存放路径,建议直接回车。使用默认地址。
生成过程中输入你的用户密码,如果输入了一定要记住哦。
如果想要使用公钥的时候,不输入密码,在提示输入密码的时候,直接回车两次即可。
4. 生成的公钥在用户目录下的.ssh文件夹中,例如:C:\Users\roy08\.ssh
id_rsa:私钥
id_rsa.pub:公钥
之后使用时如果需要上传或者修改远端仓库,则需要将公钥配置到远端仓库服务器上,而私钥由自己保留在客户端本机,以便于Git使用时完成校验。
5. gitee配置公钥
在生成公钥的文件夹下面,示例为(C:\Users\roy08\.ssh),找到id_rsa.pub文件,用记事本打开,复制里面内容。
在gitee的设置里面,找到ssh公钥,然后粘贴进去,就可以了
4. 关联版本库
关联版本库,常见有两种方式
备注:如果是需要上传代码到服务器,建议使用git@的地址
4.1 读取版本库
# clone版本库到本地
git clone xxx.git
# 拉去最新代码
git pull
从服务器下载代码到本地后,可以在相应编辑器打开,就实现好了关联。
4.2 客户端初始化项目
# 创建与版本库项目同名文件夹,并执行初始化
git init
# 关联到已经创建的版本库
git remote add origin https://gitee.com/willtesting/public01.git
# 初始化版本库代码到本地master分支
git pull origin master:master
# 设置默认更新和上传代码的分支
git branch --set-upstream-to=origin/master master
此方法适合已经在本地创建了项目,需要把本地项目与服务器进行关联
备注:如果是更改版本库地址了,那么先删除版本库关联:git remote rm origin
然后执行2~4步骤
二、Git的使用
1. 只读的使用方式
在你存放项目的文件夹里面,右键打开git bash
1.1 获取源码
1.2 更新源码
在版本库源码文件夹中,打开git bash
1.3 切换分支代码
在版本库源码文件夹中,打开git gui,然后在左上角的Repository里面,View all branch history
通过reset可以切换代码到不同的历史提交记录以及分支
2. 写的使用
2.1 准备提交文件
在代码开发调试完成后,在版本库源码文件夹中,打开git gui。选择要提交的文件,并stage to commit。
过滤要提交的文件,可以参考本文里面:ignore文件使用
2.2 写入提交记录和备注
2.3 提交
点击2.2里面,3下面的commit,就可以把代码提交到暂存区(备注,此时还没有推送到服务器哦!)
2.4 推送
点击2.2里面,3下面的push,就可以推送代码到服务器,此时本次提交完成
3. 本地和服务器代码合并
提交代码时,要特别注意。由于git是一个分布式的管理架构,同时可以有多个本地仓库在与服务器交互。比如A和B同时与服务器交互,A先提交了代码到服务器,B后面提交时,git会提示B当前的代码不是服务器最新代码,提交就会失败。此时B需要先从服务器获取最新代码,然后在本地进行合并(比如A,B同时修改了c.txt文件,因为服务器不知道应该保留谁的更改,所以需要手动合并)。处理完合并冲突后,就可以提交到服务器,并会得到一次合并提交的记录。
服务器上的代码A先提交,那么B去提交的时候,会提示如下
如何解决这样的问题?
第一步:先git pull,更新服务器最新代码到本地,此时会提示合并代码到本地冲突
第二步:解决冲突部分代码
①:凡是有冲突的代码文件都会有报错提示
②:HEAD到=====部分代码是本地当前最新代码行
③:=======到>>>>>>>部分代码是服务器当前最新代码行
第二步和第三步两处代码就是冲突部分代码,解决冲突的开发需要看懂代码,然后决定保留什么样的代码,或者重新写。
解决后,删除HEAD、=====、>>>>>>>等提示语句
待所有冲突解决完毕,即可重新提交合并后代码,并push成功
合并后提交
成功!
三、git分支管理
一般来说:一个项目会有至少三个分支(dev,test,master)。分别用于开发,测试,发布。
好处在于:便于分开管理代码,有利于代码的管理和维护,也有利于代码的安全性
测开应用:众所周知,在数据驱动架构之上运行自动化,一般一套架构是可以同时支持web、app、接口的。
但不同自动化运行的时候,用例和部分代码可能有些许区别,这时候使用不同分支管理,会非常好
git分支管理主要是git命令的运用。掌握好下面的命令,就可以很好的掌握git分支
备注:这里是命令的说明
查看分支
创建分支
切换分支
添加文件到准备提交
提交
上传代码
删除分支
我们最终可以得到的分支效果图:
附加1:ignore文件使用
以该版本库示例代码为例:
我们在本地代码里面新建.gitignore文件,里面加入两个文件夹
再次打开git客户端,准备提交,这时候,.idea/目录下所有文件都会被忽略
备注:你哪些文件或者文件夹不需要提交,加一个忽略就OK了
未完待续////