首先从远端版本库clone下来一个全新的库:

git clone username@xxx:/xxx/xxx.git

此时clone下来的,只是master分支,没有其他分支。

查看分支:

git branch  #查看本地分支
git branch -r #查看远端分支
git branch -a #查看所有分支,包括本地和远程的

分支名前面有 * 的,就是当前所在分支。分支名型如remote/origin/xxx的,就是远端分支。

创建本地分支:

git branch <user_branch_name>  #在本地创建一个新分支
git checkout -b <user_branch_name> #在本地创建一个新分支,并且立即切换到这个分支(第一种方式只是创建了一个分支,并没有切换)

下面是使用 git checkout -b dev 创建的 dev 分支,会提示说已切换至新的分支 dev:

再次使用 git branch 查看分支,会发现本地有两个分支。其中dev分支前有个 *,说明当前分支是dev:

切换本地分支:

一个版本库可能有多个分支,例如现在有主分支master,有开发分支dev,那么从dev分支切换至master分支如下:

git checkout master  #从dev分支,切换到master分支

如上提示,已经切换至master分了。

此时再使用git branch查看分支情况,可以看到master前面有个 * ,说明已经切换到master了:

其实命令行提示尾部括号中的名字,就是当前所在分支:

可以看到,最后面的括号中的master,表明了当前所在分支。

合并本地分支:

合并分支命令:git merge 的工作流程是:将指定分支,合并至当前分支。

例如需要将 dev 开发分支,合并到 master 主分支上,需要如下两步操作:

1.切换到主分支

2.将dev合并至master

git checkout master  #切换到master分支
git merge dev #将dev分支合并至master分支

例如目前有两个分支,一个master分支,一个是dev分支。

这时新建了一个文件a.txt,在dev分支上完成git add 、 git commit两步操作,这表明,a.txt是属于dev分支的,切换到master分支时是看不到a.txt的。

这时切换到master分支,将dev分支合并至master,就会把dev的代码加入到master中。master也就可以看到a.txt了。

删除本地分支:

一个分支使用完了,可以删除掉。例如这个分支就是为了修复某一个bug的,bug修好了,新代码合并至master之后,这个分支就可以删除了。

git branch -d <branch_name>  #删除本地branch_name分支

另外:删除当前所在分支是不行的,会提示删除失败。

推送本地分支到远端:

#下面local_branch_name用来指明要推送本地哪个分支,remote_branch_name用来指明远端接收这个分支后叫什么。
git push origin [local_branch_name]:<remote_branch_name> #如果希望推送当前分支,那么local_branch_name:可以省略
git push origin remote_branch_name #另外本地分支名与远端分支名最好保持一致

其实只有master一个分支时做推送操作的命令中 git push origin master,最后这个master其实就是远端的master分支名,master其实也是一个分支,git要求版本库中必须至少要有一个分支,默认叫master。

删除远端分支:

删除远端分支有两种方式:

1.直接branch命令删除远端:

git branch -r -d <remote_branch_name>  #-r表示操作的是远端  -d表示执行删除操作

2.通过推送一个空的分支到远端,用空分支覆盖掉远端分支,从而删除这个远端分支:

git push origin :<remote_branch_name>  #注意,origin后面有一个 空格,以及一个冒号,这是必不可少的

3.删除已被删除的远程分支所对应的本地分支:

一个远程分支被删除了,可是本地还存在其对应的分支引用,可以这样删除:

git fetch -p

 拉取远程分支:

1.直接拉取某一分支:

git checkout -t <remote_branch_name> #-t 意为 track,即跟踪一个远程分支

2.在初次clone时直接clone某一分支(默认是clone下来主分支master):

git clone <repository> -b <branch_name>

Git分支管理的基本操作的更多相关文章

  1. GIT分支管理模型

    GIT分支管理模型 link: git-branching-model 主分支(Main branches) 项目两个常驻分支: master 主干分支(锁定),仅用于发布新版本,平时不能在上面干活, ...

  2. Git 分支管理是一门艺术

    转载: Git 分支管理是一门艺术 1 要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从开发分支(develop)应该总能够获得最新开发进展的代码. 2 "辅助分 ...

  3. Git 分支管理详解

    大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 Cen ...

  4. Git分支管理[三]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git分支管理命令 git branch #创建分支 git branch -v # ...

  5. Git—分支管理

    Git—分支管理 分支学习:branch称为分支,默认仅有一个名为master的分支.一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支. branch相关常用 ...

  6. [转载]理解 Git 分支管理最佳实践

    原文 理解 Git 分支管理最佳实践 Git 分支有哪些 在进行分支管理讲解之前,我们先来对分支进行一个简单的分类,并明确每一类分支的用途. 分支分类 根据生命周期区分 主分支:master,deve ...

  7. 02: git分支管理

    目录:GIT其他篇 01: git & github 02: git分支管理 目录: 1.1 Git常用命令 1.2 主要分支(保护分支) 1.3 特性分支:feature (开发分支合并到d ...

  8. git 分支管理——多人协作

    git 分支管理--多人协作 一般一个项目有一个master主分支,还有一个develop开发分支.主要是在develop分支上协作开发,然后merge合并到master主分支上. 当从远程仓库克隆时 ...

  9. Git分支管理及合并

    Git分支管理   建立分支 git branch [name]   切换到分支 git checkout [name]   查看有哪些分支 git branch   比较分支 git diff [b ...

随机推荐

  1. jQuery事件绑定和委托

    可以用多种方法实现,on()  . bind()  . live()  . delegate() ,还有one(). 有时我们可能会像下面这样绑定一个事件: $("#div1"). ...

  2. 如何更改Chrome默认的搜索引擎

    1 打开Chrome浏览器之后,点击窗口右上角的图标,在弹出的菜单中点击设置,如图所示: 2  在打开的窗口中,点击管理搜索引擎,如下图所示: 3 在弹出的窗口中,找到百度的搜索引擎或者bing的搜索 ...

  3. MVC5之路由机制

    ---恢复内容开始--- MVC是一种模式,是基于asp.net上的一种设计.路由机制不属于MVC,路由机制属于asp.net.因此,mvc的路由机制就是基于asp.net路由机制上的一种“自定制”. ...

  4. CSS3的position:sticky介绍

    用户的屏幕越来越大,而页面太宽的话会不宜阅读,所以绝大部分网站的主体宽度和之前相比没有太大的变化,于是浏览器中就有越来越多的空白区域,所以你可能注意到很多网站开始在滚动的时候让一部分内容保持可见,比如 ...

  5. 百度地图API应用实践(一) —— 栅格图(草稿)

    概述 运用百度地图JS API,实现了在百度地图上绘制栅格并按统计值渲染栅格颜色.实现的过程是不断补习的过程,其中用到一些技术,是个人首次尝试.包括:(1)简单的jQuery语法,并实现Ajax:(2 ...

  6. WebService 学习总结

    一.概念 Web Web应用程序 Web服务( Web Serivce), SOAP, WSDL, UDDI .Net 框架 ASP.net IIS C#, 代理(委托) 二.实践 1.创建WebSe ...

  7. 黄聪:如何使用CodeSmith批量生成代码(转:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html)

    先看看CodeSmith的工作原理: 简单的说:CodeSmith首先会去数据库获取数据库的结构,如各个表的名称,表的字段,表间的关系等等,之后再根据用户自定义好的模板文件,用数据库结构中的关键字替代 ...

  8. python 读取机器信息

    本人最近新学python ,用到关于机器的相关信息,经过一番研究,从网上查找资料,经过测试,总结了一下相关的方法. # -*- coding: UTF8 -*- import os import wi ...

  9. C++ 数据类型及相关问题 及输出精度控制

    1.有哪些数据类型? 2.数据类型在不同的编译器会有不同的位宽,如何得知? 使用如下命令: cout<<sizeof(int)<<endl; cout<<sizeo ...

  10. PYTHON多进程样码

    敲了一晚上,留个念想. 发现它和LINUX的C编程差不多,就是作了PYTHON化的语法封装. 以后希望有机会能用上.. A,多进程函数化实现 import multiprocessing import ...