Git分支管理

分支是Git很重要的一个特性,可以把分支简单理解为一个快照。当初始化仓库时,默认会有一个master分支,如果我在master分支下新建了一个test分支,那么test分支就是master的一个快照

使用场景

开发新功能

开发新功能的流程通常是这样的

  1. 开发一个网站
  2. 为实现某个功能,创建一个分支
  3. 在分支上完成开发工作
  4. 功能开发完毕,并且测试通过后,合并到主分支

代码表示

# 从master分支创建pay分支,完成支付功能开发工作
$ git branch pay

# 功能开发完毕,合并pay分支的代码
$ git checkout master
$ git merge pay

# 推送到远端
$ git push

# pay分支已经没用,可以删除了
$ git branch -d pay

紧急Bug

很多时候,可能会有这样的情况:你正在某分支上开发新功能,突然有一个紧急Bug需要修复,工作流程是这样的

  1. 把未开发完成的功能暂存下
  2. 切换到原先已经发布到生产服务器上的分支,假设叫master分支
  3. 创建一个为修复bug的分支,完成修复问题
  4. 测试通过后,回到master分支,把修补分支合并进来,推送到生产线上
  5. 切换到之前实现新需求的分支,继续工作

代码表示

# 从master分支创建pay分支,开发支付功能
$ git branch pay

# 来bug了,但支付还没有开发完成。保存一下现场,等bug修复后回来继续工作
$ git stash

# 从主分支切出一个issue01分支,修复bug
$ git checkout master
$ git checkout -b issue01

# bug修复完成并测试通过,合并issue01分支,推送到远程
$ git checkout master
$ git merge issue01
$ git push

# 恢复现场,继续开发支付功能
$ git checkout pay
$ git stash pop

分支管理

创建分支

# 创建pay分支
$ git branch pay

# 切换到pay分支
$ git checkout pay

# 合二为一
$ git checkout -b pay

推送分支

# 把pay分支推送到远端
$ git push -u origin pay

合并分支

把pay分支的代码合并到master分支

$ git checkout master
$ git merge pay

查看分支

# 查看本地分支
$ git branch

# 查看远程分支
$ git branch -r

# 查看所有分支
$ git branch -a

# 查看最后一次提交的信息
$ git branch -v
$ git branch -r -v
$ git branch -a -v

# 查看哪些分支合并进了当前分支
$ git branch --merged

# 查看哪些分支未合并进当前分支
$ git branch --no-merged

删除分支

# 删除远程pay分支
$ git push -d origin pay

# 删除本地pay分支
$ git branch -d pay

删除分支前要确认分支已经被合并到主分支,否则是无法删除的。如果确实要放弃已经在分支上修改的工作成果,可以使用-D强制删除

保存现场

当你正在开发一个功能,功能还没开发完成,突然线上爆了一个Bug需要紧急修复,这时怎么办?功能没完成就直接commit是不合适的,这时候保存现场功能就派上用场了

在功能分支执行$ git stash命令,保留一下现场,然后你就可以切换到主分支去修复bug了。bug修复后,切换到功能分支,执行$ git stash pop恢复现场,继续之前的工作

posted @ 2021-10-07 14:05  wmui  阅读(59)  评论(0)    收藏  举报