Git学习之路(6)- 分支操作
▓▓▓▓▓▓ 大致介绍
几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的。就比如我在没有学习Git之前,想实现我的一个小想法,但是又害怕影响已完成的工作,只有ctrl+c、ctrl+v,但是在Git中,甚是方便了许多。
这篇博客主要讲以下几部分:
◆ 创建分支
◆ 合并分支
◆ 删除分支
▓▓▓▓▓▓ 创建分支
在之前的学习中,都只有一个分支即 master分支 这是Git中主分支的默认名。在Git学习之路(4)- 撤销操作、删除文件和恢复文件 中提到了HEAD,表示当前的版本,在以前的学习中master和HEAD是这种关系:
Git使master指向最新的提交,然后使HEAD指向master,就像C语言中的指针一样。
创建一个分支:
git branch 分支名
查看分支:
git branch
切换到某个分支:
git checkout 分支名
创建并切换到某个分支:
git checkout -b 分支名
例如:
首先用 git branch 查看了一下分支,发现就只有 master 一个分支,然后创建了 branch1 分支。查看分支,可以发现前面有*符号的分支,为当前分支。切换到branch1
此时,用图来表示:
▓▓▓▓▓▓ 合并分支
在分支上改好文件后,我们最后要把它合并到主分支上。
git merge 分支名
查看以和当前分支合并过的分支:
git branch --merge
查看未于当前分支合并过的分支:
git branch --no-merge
例如:
首先查看了分支,可以看到一共有三个分支:branch1、branch2、master。然后查看和当前分支master合并过的分支,显示无。查看没有和master合并过的分支,有两个即:branch1、branch2。将branch1和master合并,继续查看和master合并过的分支和未合并过的分支
此时,用图来表示:
但是有时候,分支合并时并不是一帆风顺,例如两个分支如果对同一文件的用意部分进行修改,那么在合并时就会出现问题:
如图:
这时,合并分支时产生了冲突,Git会让你自己选择要保留哪个,在你的代码中会出现类似这样的提示信息:
选择你就要保留的代码,删除不要的,在提交就可以了
▓▓▓▓▓▓ 删除分支
当我们要删除一个分支时,要分为两种情况:
删除与当前分支合并过的分支:
git branch -d 分支名
删除与当前分支没有合并过的分支:
git branch -D 分支名
例如:
首先查看了与当前分支合并和没有合并过的分支,发现用-d删除未合并过的分支时,出现了错误,改用-D则成功删除
参考资料:
Git学习之路(6)- 分支操作的更多相关文章
- Git学习之路(5)- 同步到远程仓库及多人协作问题
▓▓▓▓▓▓ 大致介绍 我们写好文件后添加到版本库,但是这样还没有做完,我们还需要将它同步到GitHub的远程仓库上,这里就以我们刚开始的drag项目为例,我们在Git学习之路(2)-安装GIt和创建 ...
- Git 学习(六)分支管理
Git 学习(六)分支管理 几乎每一种版本控制系统都支持分支.使用分支意味着你可以从开发主线上分离开来,然后不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录 ...
- Git学习之路(2)-安装GIt和创建版本库
▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ ...
- git学习(5)分支管理(续)
git学习(5)分支管理(续) 1.解决冲突 冲突的产生 如我们在新建分支和原来master分支上对同一文件做了修改并提交,在合并分支的时候就会遇到冲突 比如我新建了分支myBranch,在这个分支上 ...
- GIT学习之路第三天 文件操作
本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 一.版本回退 1.git log提交日志 在git中可以通过个git log 命令显示从最近到最远的提交日志. $ git log commi ...
- Git学习之路(4)- 撤销操作、删除文件和恢复文件
▓▓▓▓▓▓ 大致介绍 经过前面的学习(小白学Git)已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交 ...
- GIT学习之路第五天 分支管理
本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 5.1创建与合并分支 首先创建dev分支,然后切换dev分支 $git checkout -b dev(包含创建并切换) 等价于<-&g ...
- git 学习笔记 —— 获取远端分支并修改后提交至远端仓库
笔者最近进行开发过程中,所有参与者的代码需要通过 git 上传到远端仓库中,不同的模块对应不同的 git 分支,不同模块的数据需要从远端仓库中获取.这里记录下笔者从远端仓库中获取分支数据,进行修改,最 ...
- GIT学习记录3(分支管理)
学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...
随机推荐
- python2与python3编码问题
python2: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 33: 解决办法: 在报错的页面添加代码: ...
- 四 APPIUM GUI讲解(Windows版)
Windows版本的APPIUM GUI有以下图标或者按钮: ·Android Settings - Android设置按钮,所有和安卓设置的参数都在这个里面 ·General Settings – ...
- HTML5学习笔记四:html5结构
一.大纲:大纲即文档中各内容区块的结构编排 1. 显示编排内容区块:使用section等元素创建文档结构,每个内容区块使用标题(h1~h6,hgroup); 2. 隐式编排内容区块:根据页面所书写的各 ...
- eclipse使用egit提交代码报错
在eclipse上使用插件egit同步代码时出现如下错误 解决办法: 开eclipse中的windows-->Preferences-->Team-->Git-->Config ...
- Selenium2(java)页面对象模型(Page Object) 八
在开发一个 Selenium WebDriver 测试,我们可以使用页面对象模型.这个模型可以使测 试脚本有更高的可维护性,减少了重复的代码,把页面抽象出来.对象模型也提供了一个注释,帮助缓存远程,避 ...
- 企业为什么要实行ERP系统,它到底有什么好处呢?
目前,我国正在大力推行企业信息化建设,作为一种包含了现代管理思想的ERP(Enterprise Resource Planning)系统日益成为现代企业业务运作的主要工具,为了提升管理水平,提升企业竞 ...
- SQL server 定时自动执行SQL存储过程
当一个存储过程是为了生成报表,并且是周期性的,则不需要人工干预,由SQL作业定时自动执行些SQL存储过程即可. 本示例,假设已需要定时执行的存储过程为:Pr_test 工具/原料 SQL Server ...
- 负载均衡软件LVS分析三(配置)
LVS集群有DR.TUN.NAT三种配置模式,可以对www服务.FTP服务.MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置. 一. Director ...
- CRtmpServer分析与应用
CRtmpServer分析与应用 官方地址:http://www.rtmpd.com/ CRtmpServer是一款不错的开源流媒体服务器,用c++语言编写,跨平台.官方介绍CRtmpServer不仅 ...
- Windows 10 IoT Core环境配置中的那些坑
我使用的设备是Raspberry Pi 3B,想来国内的嵌入式玩具应该还是树莓派最常见吧.这段时间一直在捣鼓Win10 IoT,结果发现,从安装一直到编码调试一路下来全都是坑.写这篇东西一个是为了备忘 ...