专栏首页测试游记Git基础知识(六)

Git基础知识(六)

分支的新建与合并

模拟修复Bug的场景

  1. 正常在工作分支「dev」上进行特性开发
  2. 测试告知主线版本「master」出现了一个bug「编号666」需要修复
  3. 在出了版本的分支上新建一个新的分支「666」
  4. 修复问题,提交修改,并推送至远端
  5. 让管理员把「666」分支合入到主线
  6. 切换回特性开发分支继续开发

新建分支

因为是主线上的bug,所以先切回到主线上去,不过本地的主线可能有点旧了,所以把本地的master分支删掉,然后和远端同步一下之后再从远端把master分支检出

$ git branch -d master
$ git fetch origin
$ git checkout master 

更新master分支现在master分支是库上最新的了,我们可以放心的从当前提交拉出一个新的bug修复分支了

作为一个有即将可能成为优秀程序员的人,当然要学会偷懒了,使用checkout -b一起完成新建和切换分支的操作

$ git checkout -b 666
相当于
$ git branch 666
$ git checkout 666

新建加切换

然后「666」分支上进行修改,提交,推送到远端

$ vim 1.py 
$ git add .
$ git commit -m 'fix 「666」'
$ git push --set-upstream origin 666

完成修改后提交

好了,现在使用git checkout切回到原来工作的分支去就行了。

不过假设你是管理员,那么你就需要多干一点事情了,把这个提交给合并到主线去才能算完成工作。

$ git checkout master
$ git merge 666
$ git branch -d 666

合并并删除无用分支

合并冲突

假设有两个人一起在开发,那么就可能会出现,修改了同一行内容的情况。这样合并的时候就会报出冲突。

环境搭建

首先要构造一个这样的环境

在当前的提交「A」上拉出两个分支「B」「C」,并修改同一个文件,然后先后合入到原来的提交「A」上。

检出B并修改

检出C并修改

先合并B然后合并C

image-20190404210904817

查看冲突:

查看冲突

只有<<<<<<<=======>>>>>>>都去除掉了才能正常提交

其中=======上面是「HEAD」的部分

下面是「C_」分支部分

image-20190404211057676

提交之前也还是需要进行提交,这样本地的位置「HEAD」就指向本地的master了

解决冲突后提交

分支管理

查看全部分支

$ git branch
$ git branch -v

image-20190404211426258

image-20190404211504986

过滤已经/还没合并的分支

$ git branch --no-merged # 查看还未合并的分支

$ git branch --merged # 查看已经合并的分支

查看已合并的分支

新建了一个分支「D_」并完成了一次提交,切换回「master」的时候使用查看还未合并的分支命令可以看到分支「D_

查看未合并的分支

本文分享自微信公众号 - 测试游记(zx94_11),作者:zx钟

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Git基础知识(八)--变基

    你在查看一个经过变基的分支的历史记录时会发现,尽管实际的开发工作是并行的,但它们看上去就像是串行的一样,提交历史是一条直线没有分叉。

    zx钟
  • Git基础知识(三)

    为了能进行项目协作,所以我们需要将仓库托管在一个公共的地方。远程仓库是指托管在因特网或其他网络中的你的项目的版本库。

    zx钟
  • Git基础知识(五)

    都说Git的分支是它的必杀技特性,由于没有接触过太多的版本管理工具,就使用过的SVN来说,两者真的差别巨大。SVN创建一个分支,需要将内容复制一遍!这个时间真的...

    zx钟
  • 如何使用github给大佬递茶

    最近也是闲到没事干(误),开始给开源项目打小黑工贡献代码,当个dalao手底下的端茶党。但是看来端茶党也不是那么容易做的或许只是傻翠他智商太低跟不上,在打小黑工...

    idealclover
  • Git学习01-Learn Git Branching(在线学习工具)

    网址:https://learngitbranching.js.org/?locale=zh_CN

    帅的一麻皮
  • 可能每天都会用到的Git命令速查表

    老实说,莱纳斯·托瓦尔兹(Linus Torvalds)的小项目几乎感觉像是一个奇迹。

    王小婷
  • 为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)

    作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了...

    冰河
  • 如何高效的在服务器和本地进行上传和下载文件

    昨天, 师弟告诉我可以在xshell中使用sz进行下载, 想要上传的话用rz就行了. 然后我竟然没有听过. 学习最好的方法就是写一篇博客, 比如这篇.

    邓飞
  • Git 如何优雅地回退代码

    从接触编程就开始使用 Git 进行代码管理,先是自己玩 Github,又在工作中使用 Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码、提交...

    黄泽杰
  • Git 如何优雅地回退代码

    从接触编程就开始使用 Git 进行代码管理,先是自己玩 Github,又在工作中使用 Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码、提交...

    枕边书

扫码关注云+社区

领取腾讯云代金券