@

目录

1.分支介绍

创建了一个属于自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上

2.基本使用分支

注意

所有的操作都基于已经使用git的文件夹(工程目录)

1.查看分支

git branch

2.创建一个分支dev并切换到其上进行工作

git checkout -b dev

此时状态指针状态

3.在dev分支中变更已经追踪的文件,并进行提交

#添加到stage(假如工作区已经修改这个文件)
git add 1.txt
#提交到版本库
git commit -m "dev分支第一次"

此时状态指针状态

4. dev分支的工作完成,可以切换回master分支

git checkout master

此时状态指针状态

5.把dev分支的工作成果合并到master分支上

git merge dev

这次合并是“快进模式”(Fast-forward),也就是直接把master指向dev的当前提交,所以合并速度非常快。因为此时master没有更改,所以直接指向就完事

此时状态指针状态

6.合并完成后删除dev分支了

git branch -d dev

3.解决冲突

此时指针状态(master,dev都有修改),此时去merge。git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突。此时合并会生成一个新的提交,假设现在已经在master分支使用fast合并了一次,没有成功(git merge dev),提示必须在master手动解决冲突文件再提交

1.查看冲突文件(就是两边都有修改的文件)

git status

2.手动修改冲突文件,再加入缓存区,提交

#添加到stage(假如工作区已经解决这个冲突文件)
git add 1.txt
#提交到版本库
git commit -m "解决master和dev的冲突"

此时指针状态

3.查看状态,在命令行以图的方式查看

git log --graph

4.合并完成后删除dev分支了

git branch -d dev

3.分支管理策略

通常合并分支时,如果可能,git会用fast forward模式,但是有些快速合并不能成而且合并时没有冲突,这个时候会合并之后并做一次新的提交。

1.切换到dev分支下,并新建了一个文件提交到dev版本库

#在master分支下运行,创建dev分支并且切换过去
git checkout -b dev
#加入暂存区(创建2.txt后)
git add 2.txt
#提交到版本库
git commit -m "dev创建了2.txt"

2.切换回master分支,编辑1.txt并进行一个提交

#切换到master
git checkout master
#加入暂存区(修改1.txt后)
git add 1.txt
#提交到版本库
git commit -m "master更改1.txt"

3.合并dev分支的内容到master分支

#切换到master
git checkout master
#加入暂存区(修改1.txt后)
git add 1.txt
#提交到版本库
git commit -m "master更改1.txt"

4.删除dev分支

git branch -d dev

4.强制禁用fast forward模式

前提使用merge的时候没有冲突

git merge --no-ff -m "强制合并dev和master" dev

5. Bug分支

软件开发中,bug就像家常便饭一样。有了bug就需要修复,在git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。假如当前在dev分区干活

1.把当前工作现场“储藏”起来,等以后恢复现场继续工作

git stash

2.假定需要在master分支上修复,就从master创建临时分支

git checkout -b bug_master_001

3.修复完成提交

4.回到dev分支还原现场

git checkout dev
git stash pop

关于作者

个人博客网站

个人GitHub地址

个人公众号:

工具-Git与GitHub-分支管理(99.5.2)的更多相关文章

  1. python使用git进行版本控制-分支管理

    1.远程克隆 最好的方式是先创建远程库,然后,从远程库克隆: 首先在github上创建一个新的仓库,名字叫gitskills 我们勾选Initialize this repository with a ...

  2. Git如何进行分支管理?

    Git如何进行分支管理?     1.创建分支     创建分支很简单:git branch <分支名>     2.切换分支     git checkout <分支名>   ...

  3. github 分支管理

    github 分支管理 最近有同事问我git 如何管理分支,这里我以github为例,做下工作中常用的分支管理操作. 分支管理 作用:假设你准备开发一个新功能,但需要两周才能完成,第一周写了60%,如 ...

  4. Git 远程仓库分支管理

    目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...

  5. Git远程和分支管理

    一.远程       Git是分布式版本控制系统,最重要的优点就是远程仓库托管代码.不用自己搭建一个服务器,在github上面注册一个账户就可免费获取远程仓库.      首先需要先在github上面 ...

  6. 史上最浅显易懂的Git教程3 分支管理

    假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险 ...

  7. 【Git教程】Git教程之分支管理

      在前一篇文章中,主要针对Git本地仓库和远程仓库的基本操作命令进行了简要介绍,本文主要集中介绍Git的另一个主要的特点:分支管理和多人协作. 什么是分支管理   当一个任务需要多人协作完成时,每个 ...

  8. git基本操作:分支管理

    一.创建测试项目 1.新建GitHub仓库 在GitHub上面新创建一个仓库,用来演示分支管理,如下图所示: 点击“Create repository”按钮创建新仓库. 2.将本地仓库项目上传到Git ...

  9. 五、git学习之——分支管理策略、Bug分支、feature分支、多人协作

    一.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生 ...

随机推荐

  1. 如何利用 CleanMyMac X 进行系统清理

    CleanMyMac X是一款颇受欢迎的专业清理软件,拥有十多项强大的功能,可以进行系统清理.清空废纸篓.清除大旧型文件.程序卸载.除恶意软件.系统维护等等,并且这款清理软件操作简易,非常好上手,特别 ...

  2. Camtasia制作视频分割与视频拼接

    视频的分割与拼接是在制作和编辑视频中经常用到的方法,运用Camtasia视频编辑器能够让视频制作更加的简单和便捷.Camtasia是一款录频软件和视频编辑器,可以进行屏幕录制.拖放视频等操作.小编采用 ...

  3. MySQL常用命令与语句

    目录 Shell命令 查看系统信息 查看系统变量 设置系统变量 数据库操作 查看表信息 修改表语句 操作表 操作索引 操作约束 操作列 查询常用语句 Shell命令 mysql -uroot -p12 ...

  4. 关于Linux虚拟机连接不上网络的问题

    前阵子自学Linux(版本是CentOS6 -VMware ),因为连不上网的问题搁置了一段时间,昨天又重新拾起来,花了一下午时间终于搞定.下面说几点,给自己学习历程一个记录,也希望能帮到其他初学者. ...

  5. Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree 题解(贪心+易错)

    题目链接 题目大意 给你一课树,要你给每一条边分权值,每条边的权值大于0,他们的乘积等于k,而且要使得n-1条边1的数量尽可能少,定义 f(u,v)为u到v的边权和求 \(\max \sum_{i=1 ...

  6. kafka入门之broker--日志存储设计

    kafaka并不是直接将原省消息写入日志文件的,相反,它会将消息和一些必要的元数据信息大宝在一起封装成一个record写入日志.其实就是我们之前介绍的batch 具体对每个日志而言,kafka又将其进 ...

  7. jdk1.8hashmap常见的面试问题

    1.HashMap原理,内部数据结构? 底层使用哈希表(数组加链表)来存储,链表过长会将链表转成红黑树,以实现在O(logn)时间复杂度内查找 2.讲一下HashMap中的put方法过程? 对key求 ...

  8. 我与oracle的爱恨情仇(第一章)

    关于配置 问题一 可能是虚拟机桥接问题 问题解决的链接:[如何更改虚拟机桥接](https://jingyan.baidu.com/article/9113f81b7cfbd22b3214c790.h ...

  9. 第一次个人编程作业:我的分数我做主 - 软件工程与 UML

    博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE ...

  10. Spring Cloud Alibaba 初体验(三) Nacos 与 Dubbo 集成

    一.新建项目 新建项目,只放置接口,用于暴露 Dubbo 服务接口 public interface GreetingService { String greeting(); } 二.provider ...