git之分支与版本
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
一、分支管理
1、分支在实际中有什么用呢
假设你准备开发一个新功能但是需要两周才能完成第一周你写了50%的代码如果立刻提交由于代码还没写完
不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交又存在丢失每天进度的巨大风险。怎么办
现在有了分支就不用怕了。你创建了一个属于你自己的分支别人看不到还继续在原来的分支上正常工作
而你在自己的分支上干活想提交就提交直到开发完毕后再一次性合并到原来的分支上这样既安全又不影响别人工作
2、四个环境以及各自的功能特点
四个环境分别是dev、test、pre、pro(master)中文名字开发环境、测试环境、灰度环境、生产环境
dev环境开发环境外部用户无法访问开发人员使用版本变动很大。
test环境测试环境外部用户无法访问专门给测试人员使用的版本相对稳定
pre环境灰度环境外部用户可以访问但是服务器配置相对低其它和生产一样。
pro(master)环境生产环境面向外部用户的环境连接上互联网即可访问的正式环境。
3、分支策略
在实际开发中我们应该按照几个基本原则进行分支管理
①首先pro分支(即master)应该是非常稳定的也就是仅用来发布新版本平时不能在上面干活②那在哪干活呢干活都在dev分支上也就是说dev分支是不稳定的到某个时候比如1.0版本发布时
再把dev分支合并到master上在master分支发布1.0版本③修复bug时我们会通过创建新的bug分支(即test)进行修复然后合并最后删除
④当手头工作没有完成时先把工作现场git stash一下然后去修复bug修复后再git stash pop回到工作现场
二、分支相关命令
1、查看分支此命令会列出所有分支当前分支前面会标一个*号
git branch //查看本地分支
git branch -a //查看远程分支
2、创建分支
git branch 分支名 //仅仅保存本地远程还需要push
git push <远程仓库名> <远程分支名>
3、切换分支
git checkout 分支名
添加两个文件
dev分支
切换到master分支
4、提交分支
git push origin 分支名 //如果远程没有这个分支他会自动创建这个分支
远程
5、创建+切换分支
git checkout -b 分支名
6、删除分支(分本地和远程)
git branch -d 分支名 //删除本地分支
git push origin --delete dev //删除远程分支
7、创建+切换分支
git checkout -b 分支名
8、合并某分支到当前分支
git merge 分支名
注意当Git无法自动合并分支时就必须首先解决冲突。解决冲突后再提交合并完成。
使用用git log --graph命令可以看到分支合并图。
三、tag标签管理
1、查看所有标签
git tag
注1标签不是按时间顺序列出而是按字母排序的。可以用git show <tagname>查看标签信息
2、创建tag
git tag 标签名
首先切换到需要打标签的分支上例如dev再创建标签
3、推送标签到远程
git push origin 标签名
注1因为创建的标签都只存储在本地不会自动推送到远程还需要手动推送
4、模拟测试修复bug
测试人员打修订标签推送
合并测试版本
给正式版本打上标签并推送
5、删除tag
①.删除本地tag
git tag -d 标签名
注1因为创建的标签都只存储在本地不会自动推送到远程。所以标签可以在本地直接删除
②删除远程tag
1.如果标签已经推送到远程要删除远程标签就麻烦一点先从本地删除
git tag -d 标签名
2.然后再从远程删除。删除命令也是push但是格式如下
git push origin :refs/tags/标签名