目录
一,分支
环境的的功能及特点
分支的策略
分支的相关指令
二,标签
1.查看所有标签
2.创建tag
3.删除tag
4.分支与版本
一,分支
1.分支的命名规范
dev/test/pre/pro(即master)
2.分支的作用
创建了一个属于自己的分支,别人是看不到的,还继续在原来的分支上正常工作,而在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响其他人工作。
环境的的功能及特点
四个环境分别是:dev、test、pre、pro(master),中文名字:开发环境、测试环境、灰度环境、生产环境
分析:
dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。
test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定
pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。
分支的策略
1.首先,pro分支(即master)应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时, 再把dev分支合并到master上,在master分支发布1.0版本
3.修复bug时,我们会通过创建新的bug分支(即test)进行修复,然后合并,最后删除;
4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场
分支的相关指令
1.查看分支,此命令会列出所有分支,当前分支前面会标一个*号
git branch //查看本地分支
git branch -a //查看远程分支
2.创建分支
git branch name //仅仅保存本地,远程还需要push
git push <远程仓库名> <远程分支名>
3.切换分支
git checkout name
4.创建+切换分支
git checkout -b name
5.合并某分支到当前分支
git merge name
注意:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
使用用git log --graph命令可以看到分支合并图。
6.删除分支(分本地和远程)
git branch //查看本地分支
git branch -d name //删除本地分支
git branch -a //查看远程分支
git push origin --delete dev //删除远程分支
7.重命名本地分支,并提交到远程
(1).重命名
git branch -m oldBranchName newBranchName
(2)删除远程分支
git push origin :oldBranchName
(3)将重命名过的分支提交
git push origin newBranchName
3.1.git branch -m 要改的本地分支名 修改后的分支名(修改本地分支)
3.2.git push origin :远程修改前的分支名(删除远程分支)
3.3.git push origin 修改后的分支名:修改后的分支名(push 到远程分支)
3.4.git branch --set-upstream 修改后的分支名 origin/修改后的分支名(绑定远程分支)
效果展示
在仓库存放的文件中也就会出现在命令中执行的两个文件
进入指定文件(dev)
在仓库中也能看到分支文件,此时的分支只有一个
当执行 git push origin (分支名 将创建的分支提交到远程仓库中) 的命令时,分支文件就被提交过来了
二,标签
1.查看所有标签
git tag
注1:标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息
2.创建tag
1.首先,切换到需要打标签的分支上,例如:dev,再创建标签
git branch
git checkout dev
git tag 标签名
创建标签
2.推送标签到远程
git push origin 标签名
注1:因为创建的标签都只存储在本地,不会自动推送到远程,还需要手动推送
3.git标签分为两种类型:轻量标签和附注标签,区别:附注标签带注解
git tag 标签名 //创建轻量标签
git tag -a 标签名 "一期开发完成" //创建附注标签
一般推荐打带附注信息的标签,这样可以最大限度查看标签版本的修改情况
3.删除tag
1.删除本地tag
git tag -d 标签名
注1:因为创建的标签都只存储在本地,不会自动推送到远程。所以,标签可以在本地直接删除
2.删除远程tag
1.如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
git tag -d 标签名
2.然后,再从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/标签名
GUI工具为:TortoiseGit
分3个部分:dev/test如何进行代码修复
dev->test->pre->pro的发布
产品升级重新发布
4.分支与版本
dev/test/pre/pro(即master)
1.克隆远程库test1
git clone git@github.com:yanppp999/test1.git
2.依次创建dev/qas/pre分支(pro即master,已存在不用再创建),然后切换到dev分支
git branch dev
git branch test
git branch pre
add(int a, int b){a+b+b} v1.0.0
add(int a, int b, int c) v1.1.0
add(int... arr) v1.2.0
3.创建并编辑Cal.java类,添加一个add(int a,int b)方法,然后三步曲:add->commit->push(*****)
git add Cal.java
git commit -m '项目一期完成'
git push origin dev
注1:在有分支情况下,push命令需要添加远程仓库名和分支名这两个参数
git push origin dev
注2:doc窗口切换到master,输入ls命令,Cal.java是找不到的,同理在github网站上,也要选择dev分支才能看到Cal.java文件
git branch master
ls
至此,项目一期工作完成,接下来进行测试阶段(会在dev-test两个分支间不断切换)
标签相关内容,在分支讲完之后,再重新添加进来
下面命令此步骤先跳过
创建并推送标签“dev-1.0.0”至远程
git checkout dev
git tag 1.0.0-alpha
git push origin 1.0.0-alpha
知识扩充
5.将dev合并到test
git checkout test
git merge dev
git push origin qas
6.测试结束之后,创建标签:qas-1.0.0
git tag qas-1.0.0
7.将qas合并到pre
git checkout pre
git merge qas
git tag pre-1.0.0
8.将pre合并到master
git checkout master
git merge pre
git tag prd-1.0.0
注1:实际生产中的APP或软件软件版本命名规范详解,详情可参考:资料/12,资料/13
v1.0.0.191202_be.d
v1.0.0.191210.t
v1.0.0.191221.rc
v1.0.0.191225.r
9. git clone指定branch或tag
1.取完整
git clone https://github.com/arvidn/libtorrent.git
2.使用指定branch
git checkout origin/dev
3.使用指定tag
git checkout 1.0.0-alpha
4.也可以在clone的时间指定tag或branch:
git clone -b RC_1_1 https://github.com/arvidn/libtorrent.git
git clone -b libtorrent-1_1_9 https://github.com/arvidn/libtorrent.git
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)