[置顶] 【Git入门之八】分支管理
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309385
1.分支又是神马?
我为什么说又是。。。
分支就是一个我们能通过它创建出独立代码副本的东东。建立一个git仓库时,它会默认帮我们创建一个主分支,叫做master,之前所有的介绍我们都是在mater上面进行操作的。
这是一个最简单的分支模型,本文也基于此模型。每个点代表一个版本,master代表默认主分支,而branch代表新建的分支,HEAD可以认为是一个移动的指针,它指向谁,谁就是当前版本。
2.显示分支
通过《git branch》可以显示分支,前面带*号的表示当前所在的分支。
- #显示分支
- $ git branch
- * master
3.创建分支
通过《git brach 分支名》可以创建一个新的分支。
- #创建分支br
- $ git branch br
4.切换分支
- #切换到br分支
- $ git checkout br
- Switched to branch 'br'
5.修改分支内容并提交
- #修改br分支中的Jackydata01
- $ echo "Im in br now" > Jackydata01
- #提交br分支中的修改
- $ git commit -a -m "modify in br"
- [br 9ad62b7] modify in br
- 1 file changed, 1 insertion(+), 1 deletion(-)
- #显示br中Jackydata01内容,成功修改
- $ cat jackydata01
- Im in br now
6.返回主分支,确认修改
发现主分支master的内容并无修改,在分支中修改提交内容并不会影响其他分支。
- #切换到master
- $ git checkout master
- Switched to branch 'master'
- #显示br中Jackydata01内容,无修改
- $ cat jackydata01
- Hi Jackygit2
7.推送分支到远程仓库
默认情况下,git只会推送已匹配的分支,所以如果新建分支,需要手动推送到远程仓库。我们这里推送到github。
- #推送br到github的br上,如果不存在则新建,存在则更新
- $ git push git_github br:br
- Counting objects: 5, done.
- Delta compression using up to 2 threads.
- Compressing objects: 100% (2/2), done.
- Writing objects: 100% (3/3), 265 bytes | 0 bytes/s, done.
- Total 3 (delta 1), reused 0 (delta 0)
- To git@github.com:fusijie/JackyGit.git
- * [new branch] br -> br
一旦这个分支被推送到远程仓库,那以后直接《git push 目标》就可以把所有分支都推送上去了。
8.本地合并分支
使用git merge 分支名来合并分支,不过前提是要先切换到master上,如果在br上合并是没用的。
- #合并br到主分支上
- $ git merge br
- Updating 6937dbd..9ad62b7
- Fast-forward
- Jackydata01 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
9.合并本地分支到远程分支
合并本地的br分支到远程仓库的master分支。
- #把本地的br分支合并到远程仓库的master中
- $ git push git_github br:master
- Total 0 (delta 0), reused 0 (delta 0)
- To git@github.com:fusijie/JackyGit.git
- 61a92ec..be39e3f br -> master
10.删除分支
删除分支使用《git branch -d 分支名》来删除,如果分支被修改提交过但是没有被合并,那需要使用《git branch -D 分支名》来删除。
- #删除br分支
- $ git branch -d br
- Deleted branch br (was 9ad62b7).
- #确认当前分支
- $ git branch
- * master
11.删除远程分支
- #删除远程br分支
- $ git push git_github :br
- To git@github.com:fusijie/JackyGit.git
- - [deleted] br
12.显示远程分支
可以使用-a显示所有分支或-r参数来显示远程分支
- #显示远程分支
- $ git branch -a
- * master
- remotes/git_github/master
- testremote/maste
13.克隆远程分支到本地
《git checkout -b 分支名》表示本地创建分支并切换到该分支。
- $在本地新建br分支,并把远程分支br克隆到本地br
- $ git checkout -b br git_github/br
- Branch br set up to track remote branch br from git_github.
- Switched to a new branch 'br'
[置顶] 【Git入门之八】分支管理的更多相关文章
- python使用git进行版本控制-分支管理
1.远程克隆 最好的方式是先创建远程库,然后,从远程库克隆: 首先在github上创建一个新的仓库,名字叫gitskills 我们勾选Initialize this repository with a ...
- Git如何进行分支管理?
Git如何进行分支管理? 1.创建分支 创建分支很简单:git branch <分支名> 2.切换分支 git checkout <分支名> ...
- Git 远程仓库分支管理
目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...
- Git远程和分支管理
一.远程 Git是分布式版本控制系统,最重要的优点就是远程仓库托管代码.不用自己搭建一个服务器,在github上面注册一个账户就可免费获取远程仓库. 首先需要先在github上面 ...
- Git教程之分支管理之二
分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息.如果要强制禁用Fast forward模式,Git就会在merge时生成一个 ...
- git入门四(分支创建合并)
熟悉git分支的原理是掌握了git的精髓,因为git和我们常用的源码管理系统有很大的区别和优点在分支上可以体现出来,一般我们常用的源码管理系统分支都是需要创建新目录,有全新的源码copy,一般都需要创 ...
- 史上最浅显易懂的Git教程3 分支管理
假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险 ...
- [置顶]
Git学习总结(1)——Git使用详细教程
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- 【Git教程】Git教程之分支管理
在前一篇文章中,主要针对Git本地仓库和远程仓库的基本操作命令进行了简要介绍,本文主要集中介绍Git的另一个主要的特点:分支管理和多人协作. 什么是分支管理 当一个任务需要多人协作完成时,每个 ...
随机推荐
- js动态添加table 数据tr td
成果库修改: 要求主题列表随成果类型改变而改变 网上查询资料后开工,在成果类型下拉框添加change()事件触发Dwr,查询主题集合——动态创建/编辑Table 概要代码 ...
- 关于php读mysql数据库时出现乱码的解决方法
关于php读mysql数据库时出现乱码的解决方法 php读mysql时,有以下几个地方涉及到了字符集. 1.建立数据库表时指定数据库表的字符集.例如 create table tablename ( ...
- java常见错误的列表
ava常见错误列表: 找不到符号(symbol) 类X是public的,应该被声明在名为X.java的文件中 缺失类.接口或枚举类型 缺失X 缺失标识符 非法的表达式开头 类型不兼容 非法的方法声明; ...
- 前后台使用ajax传list的时候,用value[] 获取值
使用json进行前后台交互的时候,如果穿过来是的是list,可以通过value[index],(index表示的是下标) //加载新闻 function jzxw(){ $.ajax( { type ...
- application/json IE 兼容问题
由于IE系列浏览器把application/json响应视为文件,并尝试下载在网上看了一下,大致了解,只要修改返回的内容的类型(ContentType)即可解决问题. 由于ajax请求,返回类型默认就 ...
- (转)JS的parent对象
---http://blog.sina.com.cn/s/blog_a15aa5690101a5yz.html top:该变更永远指分割窗口最高层次的浏览器窗口.如果计划从分割窗口的最高层次开始执行命 ...
- 如何修改mtk android 默认拍照size
[DESCRIPTION] 修改默认拍照size [SOLUTION] 修改默认的capture size,改变camera feature table的FID_CAP_SIZE default值不起 ...
- http请求头响应头大全
转:http://www.jb51.net/article/51951.htm 本文为多篇“HTTP请求头相关文章”及<HTTP权威指南>一书的阅读后个人汇总整理版,以便于理解. 通常HT ...
- UNIX基础知识
一.线程 线程是进程某程序段的一次运行. 1.线程共享资源,利用共享的资源,线程很容易能够互相通信 (1)进程代码段:每个线程有各自的寄存器组,在运行时期拷贝给cpu寄存器,来确定运行的是哪段代码段. ...
- 设置windows窗口ICON 【windows 编程】【API】【原创】
1. ICON介绍 最近开始接触windows 编程,因此将自己所接触的一些零散的知识进行整理并记录.本文主要介绍了如何更改windows对话框窗口的ICON图标.这里首先介绍一下windows IC ...