简介

开始过了两遍Git的内容,第二天就已经忘记了分支(branch)的概念,开始还觉得不太用的到。然后又看了第二遍,才发现为什么大家说这个是Git里边极其重要的一个东西。

所谓branch,就类似于树的枝干,有一个主干,在Git里成为master,意思也很好理解;这个是必须存在的,然后你可以分出去其他的树干(但是都不是主干)。像树的分枝都会回到主干那里一样,Git里的分支也会汇聚到master那里。

比方我们现在有现成的代码,A想自己修改一下,但是不能直接改动,做法可以是copy过来修改一下,在Git里我们直接创建分支就可以了。再觉得完美了之后上传过去,这个时候直接合并分支就可以搞定了。

分支常用命令和功能介绍

通过git branch命令可以看到现在的分支情况,*代表我们目前所在的分支

# git branch
* master
test

可以看到我们有两个分支,有master还有一个test

通过git checkout test我们可以切换到test分支

#git checkout test
Switched to branch 'test'
#git branch
master
*test

通过git checkout -b  xx命令我们可以创建xx分支,-b 代表创建并直接切换到xx分支

通过git merge xx可以把xx分支合并到master分支上

完成合并之后可以删除xx分支,使用git branch -d xx命令,需要注意的是合并的时候需要解决冲突(即内容不一致的问题)

下面通过一个完整的例子(代码高亮不理想,凑合看吧)演示一下:

::01wang@~/Documents/git >>  git branch
master
* test
::11wang@~/Documents/git >> git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by commit.
(use "git push" to publish your local commits)
::21wang@~/Documents/git >> git branch
* master
test
::27wang@~/Documents/git >> ls
readme.txt Spoon-Knife test
::45wang@~/Documents/git >> cat readme.txt
master branch`
::51wang@~/Documents/git >> git checkout -b test1
Switched to a new branch 'test1'
::02wang@~/Documents/git >> git branch
master
test
* test1
::05wang@~/Documents/git >> ls
readme.txt Spoon-Knife test
::07wang@~/Documents/git >> vi readme.txt
::18wang@~/Documents/git >> git add readme.txt
::23wang@~/Documents/git >> git commit -m "branch test1"
[test1 3a09722] branch test1
file changed, insertions(+)
::38wang@~/Documents/git >> git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by commit.
(use "git push" to publish your local commits)
::53wang@~/Documents/git >> git branch
* master
test
test1
::56wang@~/Documents/git >> git merge test1
Updating c7ac8a8..3a09722
Fast-forward
readme.txt | ++
file changed, insertions(+)
::02wang@~/Documents/git >> cat readme.txt
master branch` test1 branch
::07wang@~/Documents/git >> git branch -d test1
Deleted branch test1 (was 3a09722).
::18wang@~/Documents/git >> git branch
* master
test

Git分支学习简记的更多相关文章

  1. Git分支学习总结

    思维导图:        总结:        Git分支:分为2类合计为5种分支.        第一类:主分支和开发分支.        第二类:特性分支,热补丁分支,版本分支.

  2. git入门学习(二):新建分支/上传代码/删除分支

    一.git新建分支,上传代码到新的不同分支  我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...

  3. Git 学习之git 分支(三)

    Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...

  4. git学习——<五>git分支

    git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...

  5. Git学习总结(12)——多人开发 Git 分支管理详解

    1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对远程的Git仓库有一定的了解,嘿嘿.在这一篇博客中我们来在大家讲解一下Git 分支管理,这可以说是Git的又一大特点.下面我们就来学习 ...

  6. Git速成学习第六课:Bug分支

    Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 当你接到一个修复代码为101的任务的时候,很自然的你想创建一个分支issue-101来修复它,但 ...

  7. Git速成学习第五课:分支管理策略

    Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 通常合并分支时,如果可能用Fast forward模式,但是在这种模式下,删除分支后,会丢掉分支 ...

  8. Git速成学习第三课:创建与合并分支

    本来第三课想记录一下远程仓库的创建与克隆0.0但是想了想还是不写了. 这里写一下分支管理中的创建与合并. Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng. ...

  9. git分支管理与tag的学习笔记

    git分支管理学习笔记:创建dev分支:git branch dev查看分支:git branch切换分支:git checkout dev创建并切换分支:git checkout dev -b zh ...

随机推荐

  1. JavaScript的attribute和property辨析

    1.Attribute Attribute是HTML上设置的属性,在html中显式地设置,或者通过setAttribute()方法设置. <input type='text' id='txt' ...

  2. 两个Canvas小游戏

    或许连小游戏都算不上,可以叫做mini游戏. 没有任何框架或者稍微有点深度的东西,所以有js基础的或者要追求炫酷效果的可以直接ctrl+w了. 先贴出两个游戏的试玩地址: 是男人就走30步 是男人就忍 ...

  3. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(五)框架及Web项目的组件化

    一.组件化印象 1.先给大家看一张截图 如果我告诉大家,这就是一个web管理系统发布后的所有内容,你们会不会觉得太简洁了,只有一个web.config.一个Global.asax文件,其它的都是dll ...

  4. C# 7.0 新特性4: 返回引用

    本文参考Roslyn项目中的Issue:#118. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 ...

  5. 更便捷的Android多渠道打包方式

    本文先回顾了以往流行的多渠道打包方式,随后引入的mcxiaoke的packer-ng-plugin项目,介绍该项目在实际应用(配合友盟统计)中如何解决更方便的Android多渠道打包问题 多渠道打包方 ...

  6. 深入grootJs(进阶教程)

    深入grootJs 这篇教程的原则是把grootJs原理讲透,主要真正理解了原理才能用起来随心所欲 mvvm模式简介 grootJs的vm结构 扫描函数sweep 垃圾回收的原理 加载器中的预编 ,控 ...

  7. Bootstrap系列 -- 8. 代码显示

    一. Bootstrap中的代码块 代码块一般在博客中使用的较多,比较博客园中提供的贴代码. 在Bootstrap中提供了三种形式的代码显示 1. 使用<code></code> ...

  8. 为什么带网格(mesh)的模型添加了刚体Rigidbody和MeshCollider,还是会从地板穿过去?

    两个Gameobject 放置在空中, 一个是Cube,一个是茄子模型 Cube的Collider 是Box Collider , 茄汁的Collider 是mesh collider, 他们都添加了 ...

  9. 单元测试中Assert类的用法

    Assert类所在的命名空间为Microsoft.VisualStudio.TestTools.UnitTesting 在工程文件中只要引用Microsoft.VisualStudio.Quality ...

  10. ASP.NET利用WINRar实现在线解压缩文件

    一.肯定是服务器必须装了winrar这个软件了. 二.创建Helper类,如下: using System; using System.Collections.Generic; using Syste ...