0


git之分支与版本

一、分支管理

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/标签名**

标签: java 开发语言

本文转载自: https://blog.csdn.net/yzq102873/article/details/127012643
版权归原作者 白未 所有, 如有侵权,请联系我们删除。

“git之分支与版本”的评论:

还没有评论