原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309385

1.分支又是神马?

我为什么说又是。。。

分支就是一个我们能通过它创建出独立代码副本的东东。建立一个git仓库时,它会默认帮我们创建一个主分支,叫做master,之前所有的介绍我们都是在mater上面进行操作的。

这是一个最简单的分支模型,本文也基于此模型。每个点代表一个版本,master代表默认主分支,而branch代表新建的分支,HEAD可以认为是一个移动的指针,它指向谁,谁就是当前版本。

2.显示分支

通过《git branch》可以显示分支,前面带*号的表示当前所在的分支。

[cpp] 
view plain
copy

 

  1. #显示分支
  2. $ git branch
  3. * master

3.创建分支

通过《git brach 分支名》可以创建一个新的分支。

[cpp] 
view plain
copy

 

  1. #创建分支br
  2. $ git branch br

4.切换分支

[cpp] 
view plain
copy

 

  1. #切换到br分支
  2. $ git checkout br
  3. Switched to branch 'br'

5.修改分支内容并提交

[cpp] 
view plain
copy

 

  1. #修改br分支中的Jackydata01
  2. $ echo "Im in br now" > Jackydata01
  3. #提交br分支中的修改
  4. $ git commit -a -m "modify in br"
  5. [br 9ad62b7] modify in br
  6. 1 file changed, 1 insertion(+), 1 deletion(-)
  7. #显示br中Jackydata01内容,成功修改
  8. $ cat jackydata01
  9. Im in br now

6.返回主分支,确认修改

发现主分支master的内容并无修改,在分支中修改提交内容并不会影响其他分支。

[cpp] 
view plain
copy

 

  1. #切换到master
  2. $ git checkout master
  3. Switched to branch 'master'
  4. #显示br中Jackydata01内容,无修改
  5. $ cat jackydata01
  6. Hi Jackygit2

7.推送分支到远程仓库

默认情况下,git只会推送已匹配的分支,所以如果新建分支,需要手动推送到远程仓库。我们这里推送到github。

[cpp] 
view plain
copy

 

  1. #推送br到github的br上,如果不存在则新建,存在则更新
  2. $ git push git_github br:br
  3. Counting objects: 5, done.
  4. Delta compression using up to 2 threads.
  5. Compressing objects: 100% (2/2), done.
  6. Writing objects: 100% (3/3), 265 bytes | 0 bytes/s, done.
  7. Total 3 (delta 1), reused 0 (delta 0)
  8. To git@github.com:fusijie/JackyGit.git
  9. * [new branch]      br -> br

一旦这个分支被推送到远程仓库,那以后直接《git push 目标》就可以把所有分支都推送上去了。

8.本地合并分支

使用git merge 分支名来合并分支,不过前提是要先切换到master上,如果在br上合并是没用的。

[cpp] 
view plain
copy

 

  1. #合并br到主分支上
  2. $ git merge br
  3. Updating 6937dbd..9ad62b7
  4. Fast-forward
  5. Jackydata01 | 2 +-
  6. 1 file changed, 1 insertion(+), 1 deletion(-)

9.合并本地分支到远程分支

合并本地的br分支到远程仓库的master分支。

[cpp] 
view plain
copy

 

  1. #把本地的br分支合并到远程仓库的master中
  2. $ git push git_github br:master
  3. Total 0 (delta 0), reused 0 (delta 0)
  4. To git@github.com:fusijie/JackyGit.git
  5. 61a92ec..be39e3f  br -> master

10.删除分支

删除分支使用《git branch -d 分支名》来删除,如果分支被修改提交过但是没有被合并,那需要使用《git branch -D 分支名》来删除。

[cpp] 
view plain
copy

 

  1. #删除br分支
  2. $ git branch -d br
  3. Deleted branch br (was 9ad62b7).
  4. #确认当前分支
  5. $ git branch
  6. * master

11.删除远程分支

[cpp] 
view plain
copy

 

  1. #删除远程br分支
  2. $ git push git_github :br
  3. To git@github.com:fusijie/JackyGit.git
  4. - [deleted]         br

12.显示远程分支

可以使用-a显示所有分支或-r参数来显示远程分支

[cpp] 
view plain
copy

 

  1. #显示远程分支
  2. $ git branch -a
  3. * master
  4. remotes/git_github/master
  5. testremote/maste

13.克隆远程分支到本地

《git checkout -b 分支名》表示本地创建分支并切换到该分支。

[cpp] 
view plain
copy

 

  1. $在本地新建br分支,并把远程分支br克隆到本地br
  2. $ git checkout -b br git_github/br
  3. Branch br set up to track remote branch br from git_github.
  4. Switched to a new branch 'br'

[置顶] 【Git入门之八】分支管理的更多相关文章

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

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

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

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

  3. Git 远程仓库分支管理

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

  4. Git远程和分支管理

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

  5. Git教程之分支管理之二

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

  6. git入门四(分支创建合并)

    熟悉git分支的原理是掌握了git的精髓,因为git和我们常用的源码管理系统有很大的区别和优点在分支上可以体现出来,一般我们常用的源码管理系统分支都是需要创建新目录,有全新的源码copy,一般都需要创 ...

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

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

  8. [置顶] Git学习总结(1)——Git使用详细教程

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

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

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

随机推荐

  1. 不用jquery等框架实现ajax无刷新登录

    <script type="text/javascript"> window.onload = function () { document.getElementByI ...

  2. IIS 服务器 支持.apk文件的下载

    IIS服务器不能下载.apk文件的解决办法:既然.apk无法下载是因为没有MIME,那么添加一个MIME类型就可以了 随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站 ...

  3. Hadoop配置项整理(mapred-site.xml)【转】

    本文转自:http://slaytanic.blog.51cto.com/2057708/1101360 name value Description hadoop.job.history.locat ...

  4. 【转】 NSString / NSMutableString 字符串处理,常用代码 (实例)

    Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...

  5. iOS加载启动图的时候隐藏statusbar + 指定启动图显示多少秒

    只需需要在info.plist中加入Status bar is initially hidden 设置为YES 补充一下,现在手机越来越快,在6+下面启动图一闪而过,而美工童鞋辛辛苦苦做的图就看不到鸟 ...

  6. Ubuntu12.4 64位 安装 arm linux gcc 4.3.2

    一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...

  7. 你好,C++(10)这次的C++考试你过了没有?C++中表示逻辑判断的布尔数据类型

    3.4  布尔类型 在日常生活中,我们除了需要使用int类型的变量表示216路公交车:需要使用float类型的变量表示西红柿3.5元一斤,有时候还需要表示一种数据,那就是逻辑状态: “这次的C++考试 ...

  8. When Colon Scripting is comming (脚本最佳体验)

    当冒号脚本来临-- 脚本最佳体验 冒号指派 说明; 冒号替代等号指派赋值,当命名声明指派时指定.相当于声明当前作用域的一个名字指派. 当对指定对象的属性赋值时候,依旧请使用等号.即不废弃等号赋值功用, ...

  9. linux文件系统结构和权限

    linux文件系统的目录结构 熟话说的好,好记性不如烂笔头,虽然没用笔,但动动手指还是可以的.下面的目录结构都是摘抄过来的,动动手指来加深下印象吧,还能练习下打字速度,哈哈,多好啊. ...突然又改变 ...

  10. apache静态文件配置

    开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等 2. 确保settings.py中的INSTA ...