Git创建、合并和删除分支
2015-12-19 10:23
316 查看
在版本回退里,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长:
当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
你看,Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化!
不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:
假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:
所以Git合并分支也很快!就改改指针,工作区内容也不变!
合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:
真是太神奇了,你看得出来有些提交是通过分支完成的吗?
1. 创建分支并切换分支
git branch dev
git checkout dev
2. 查看当前分支
3. 修改readme.txt的内容并提交
4. 切换回master分支
5. 合并master和dev分支
6. 删除dev分支
一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长:
当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
你看,Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化!
不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:
假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:
所以Git合并分支也很快!就改改指针,工作区内容也不变!
合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:
真是太神奇了,你看得出来有些提交是通过分支完成的吗?
1. 创建分支并切换分支
$ git checkout -b dev Switched to a new branch 'dev'git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev
2. 查看当前分支
$ git branch * dev master
3. 修改readme.txt的内容并提交
git is a version control system. git is free software under the GPL. git tracks changes. create a new branch is quick.
$ git add readme.txt $ git commit -m "new branch dev" [dev cd7428c] new branch dev 1 file changed, 2 insertions(+), 1 deletion(-)
4. 切换回master分支
$ git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'. $ cat readme.txt git is a version control system. git is free software under the GPL. git tracks changes.
5. 合并master和dev分支
$ git merge dev Updating b0e9ec8..cd7428c Fast-forward readme.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
6. 删除dev分支
$ git branch -d dev Deleted branch dev (was cd7428c). $ git branch * master
相关文章推荐
- Ubuntu 14.04 64bit + CUDA7.0卸载+ CUDA 6.5 安装配置
- jdbc 连接mysql乱码问题
- 架构设计:系统间通信(17)——服务治理与Dubbo 中篇(分析)
- MapReduce 框架的容错性
- 遥望布达拉——DAY9 理塘-巴塘
- 移动的button和移动的label
- 动画特效二十:仿支付宝转账动画
- 自定义控件8---视频音量调控
- STL中的内存与效率
- 15个常用的jquery代码片段
- 世界互联大会之际,说说支付那些事儿
- uwsgi的配置注意事项
- C# 多文件重命名思路及实现 上:步骤
- 常识——数学的常识
- vc6.0常见错误fatal error C1083: Cannot open precompiled header file: 'Debug/**.pch'
- mogodb优化
- NHibernate Expression 条件查询字符转换解释
- 1047: [HAOI2007]理想的正方形
- 数据结构(二)顺序结构 随机存取
- Android Studio学习记录