Git实现代码及版本管理


前言
之前只是 git快速入门,现在我们进一步了解关于git分支

GIt分支

介绍

在这里插入图片描述
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用。

但Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。

分支用途

场景:bug修复与后期功能迭代可以并行。

标签

Tag格式: 主版本号.次版本号.修订号-类型标签,其中类型标签可为:alpha、beta、rc、r。

Tag示例:1.0.0-alpha、1.0.0-beta、1.0.0-rc、1.0.0-r
注意
有的公司在版本命名时,前面加v,“-”替换成“_”,更加详细一点还可以在修订号后面添加发布日期
v1.0.0.190312_alpha,这都是可以的

四个环境dev、test、pre、pro(master)

dev开发环境外部用户无法访问,开发人员使用,版本变动很大。
test测试环境外部用户无法访问,专门给测试人员使用,版本相对稳定
pre灰度环境外部用户可以访问,但是服务器配置相对低,其他和生产一样
pro(master)生产环境面向外部用户的环境,连接上互联网即可访问的正式环境

一般有dev、test、pro

分支与标签的关系

相当于命名

  • dev–>alpha
  • test–>beta
  • pre–>rc
  • pro–>r

dev/test/pre/pro环境切换

分支相关命令

  1. 查看分支,此命令会列出所有分支,当前分支前面会标一个*号
git branch           //查看本地分支
git branch -a        //查看远程分支
  1. 创建分支
git branch name      //仅仅保存本地,远程还需要push
git push <远程仓库名> <远程分支名>
  1. 切换分支
git checkout name
  1. 创建+切换分支
git checkout -b name
  1. 合并某分支到当前分支
git merge name

注意:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
使用用git log --graph命令可以看到分支合并图

  1. 删除分支(分本地和远程)
     git branch                      //查看本地分支
     git branch -d name              //删除本地分支

     git branch -a                  //查看远程分支
     git push origin --delete dev   //删除远程分支
  1. 重命名本地分支,并提交到远程
     1.重命名 
       git branch -m oldBranchName newBranchName
     2.删除远程分支
       git push origin :oldBranchName
     3.将重命名过的分支提交
       git push origin newBranchName

     1. git branch -m 要改的本地分支名 修改后的分支名(修改本地分支)
     2. git push origin :远程修改前的分支名(删除远程分支)
     3.git push origin 修改后的分支名:修改后的分支名(push 到远程分支)
     4.git branch --set-upstream 修改后的分支名 origin/修改后的分支名(绑定远程分支)

演示

把远程仓库克隆下来

git clone git@github.com:myy-java/myy_git_dev.git

1、我们看到,默认的情况下就是主分支(查看分支)
在这里插入图片描述
2、创建推送分支
在这里插入图片描述
3、切换分支
在这里插入图片描述
4、创建+切换分支(远程没有test)
在这里插入图片描述
远程仓库是没有的 要push推送到远程指定分支
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、合并分支
前面merge学习了可以解决冲突,现在学习merge的新功能,可以合并分支
在这里插入图片描述
注意
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
git操作之pull拉取远程指定分支以及push推送到远程指定分支
1.pull操作

  1. 将远程指定分支 拉取到 本地指定分支上
git pull <远程仓库名> <远程分支名>:<本地分支名>
  1. 将远程指定分支 拉取到 本地当前分支上:
git pull <远程仓库名> <远程分支名>
  1. 将与本地当前分支同名的远程分支 拉取到 本地当前分支上
git pull <远程仓库名>

在克隆远程项目的时候,本地分支会自动与远程分支建立追踪关系,可以使用默认的origin来替代远程仓库名,
所以,我常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。

2.push操作

  1. 将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反
git push <远程仓库名> <本地分支名>:<远程分支名>
  1. 将本地当前分支 推送到 远程指定分支上
git push <远程仓库名> <远程分支名>
  1. 将本地当前分支 推送到 与本地当前分支同名的远程分支上
git push <远程仓库名>

推荐使用第2种方式,git push origin <远程分支名>

Git如何给branch打tag

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。
将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照

1. 查看所有标签

git tag

注意:标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息

2. 创建tag

  1. 首先,切换到需要打标签的分支上,例如:dev,再创建标签
       git branch
       git checkout dev
       git tag 1.0.0.200330_alpha
  1. 推送标签到远程
git push origin 1.0.0.200330_alpha

注意:因为创建的标签都只存储在本地,不会自动推送到远程,还需要手动推送
在这里插入图片描述

  1. git标签分为两种类型:轻量标签和附注标签,区别:附注标签带注解
git tag 1.0.0-alpha                         //创建轻量标签
git tag -a 1.0.0-alpha -m "一期开发完成"    //创建附注标签

一般推荐打带附注信息的标签,这样可以最大限度查看标签版本的修改情况

3.删除tag

  1. 删除本地tag
 git tag -d 1.0.0-alpha

注意:因为创建的标签都只存储在本地,不会自动推送到远程。所以,标签可以在本地直接删除

  1. 删除远程tag
  • 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
git tag -d 1.0.0-alpha
  • 然后,再从远程删除。删除命令也是push,但是格式如下
git push origin :refs/tags/1.0.0-alpha

在这里插入图片描述
去远程仓库查看,删除成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值