对于开发人员来说,一个团队一起开发,那么肯定会涉及到团队协作开发,这个时候版本管理工具就起了很大的作用,今天我们就来说说超强版本管理工具git应该怎么用才最好,怎么用能最大程度保证master分支代码的干净。
首先,Git是一个开源的分布式的版本控制系统,作为代码的版本控制,可以自己搭建gitlab服务器,一般公司都有自己的gitlab服务器,开发人员的代码最终都会提交到这个服务器的仓库中,也就是我们常说的远程仓库。当然,如果是自己学习,可以直接使用github服务器仓库作为远程仓库,但是github是开源的,所以代码也是公开的,除非花钱买private仓库。
一、常用的git命令
git clone [email protected] ——克隆远程仓库项目代码
git checkout -b new-branch ——创建一个new-branch分支并切换至new-branch分支
git add file ——把file添加进版本管理
git commit -m "备注" ——提交修改的代码
git checkout master ——切换至master分支
git merge new-branch ——合并分支new-branch到当前分支
git push origin master ——本地master分支变更推到远程master
git pull origin master ——拉取远程master分支并合并至当前分支
git pull origin --tags ——把远程tag更新至本地
git tag -a tag-name -m "备注" ——创建一个tag名为tag-name
git push origin tag-name ——把tag-name推到远程仓库
git branch ——列出本地所有分支
git branch -d new-branch ——删除本地分支new-branch
想了一下,平时最常用的也就这些命令了,根据不同的使用方式,可能每个人的常见使用命令不同,小编自己大概就使用这些,有些用的很少的就没有列出来了。下面我们看看一般情况下怎么使用。
二、一般情况使用
加入一个项目组,正式开始开发,一般有以下几个步骤:
1、git clone [email protected] ——使用git clone克隆远程项目到本地,克隆到本地后只有一个分支master
2、git checkout -b test ——本地创建一个test分支并为测试环境代码分支并切换至test,这里根据原项目仓库的测试环境代码分支命名,有些使用dev,这里假定原项目测试环境代码分支为test,测试test分支代码跟master分支代码相同
3、git pull origin test ——拉取远程test分支代码并合并到本地test分支,经过本步操作,本地test分支就是测试环境代码了,以后开发分支的代码都要先合并到test分支推到远程测试环境经过测试后才能进行线上部署
4、git checkout master ——再切回master分支
5、git checkout -b develop-branch ——创建开发分支develop-branch并切换至develop-branch分支,这一步就是要进入开发了,一个需求一个开发分支,直到功能开发完毕
6、git add new_file.php ——把开发过程中新建的文件添加进版本管理
7、git commit -m '备注' ——提交所有变更
8、git checkout test ——切换至测试分支
9、git merge develop-branch ——合并新开发的变更到test分支
10、git push origin test ——test推到远程分支,此时测试环境可以拉取test分支代码,然后进行测试
11、git checkout master && git merge develop-branch ——测试通过后,切换到master分支然后合并develop-branch到master分支
12、git push origin master ——master分支推到远程仓库,进行后续的部署上线
三、推荐方式、tag的使用
master分支是部署上线的代码分支,是一个很重的分支,因此不能随便就把代码合并进去,必须经过验证,确保代码没有问题后才能合进master分支。下面我们使用tag代替master进行上线部署:
截止发布到测试环境中及之前,与上面(二)中的过程是一样的,只是在后面上线时有所不同,我们接着上面的10、git push origin test 之后开始:
11、git pull origin --tags ——拉取远程tag到本地,最新的tag拉取下来
12、git checkout master ——切换至master分支
13、git merge develop-branch ——合并新开发的代码分支到master,注意不要推到远程master分支去
14、git tag -a project-v-1.0.1-username-201910251425 -m '第一次需求' ——创建一个tag,这里注意了,tag名字最好有规律一点,可以自定义版本号,一直递增,每个开发人员使用不同的username,很好的标识了是那个开发人员的tag,再写上日期就很清晰了;这里可以自己体会一下,仁者见仁,智者见智。
15、git push origin project-v-1.0.1-username-201910251425 ——把新创建的tag推向远程,千万不要把master推到远程去
接下来,我们就可以通过指定的tag进行上线部署,线上部署完成后,要经过线上验证:(1)如果功能正常,这时候就可以把master分支推到远程去了,别人拉取master代码也是经过线上验证的。(2)如果功能异常,线上代码回滚,这时候也不用操心master分支代码会被他人拉取,因为没有推到远程,所以没有任何影响。那代码回滚后需要注意的是,为了避免混淆,回滚的那个tag需要删除掉,本地master也reset到之前的tag后,开发分支重新修改提交测试后要重新创建tag推到远程去,再进行上面的步骤即可。