分支管理在咱们实际工作中经常用到,因此掌握分支对于咱们从事移动开发并且使用到了Git这样的分布式版本管理工具来说是很有必要的。比如当你饿了的时候,甲帮你做饭,一帮你烧菜:
当然你也可以自己做饭烧菜。但是咱们仍然可以看到,我是从一个饿的状态变成了一个饱的状态,也就是我之前空腹,后来我由甲(分支)和乙(分支)两人同时来帮我完成了完成了“做饭”和“烧菜”的功能,而我的状态也从饥饿变成了吃饱的状态(即饭和菜都提交到了我的肚子里),这样咱又有力气干活了。
分支在实际中有什么用呢?假设你准备开发一个新feature,但是需要10天才能完成,前5天你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了,但是如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。有了分支,你创建了一个你自己的分支,别人是看不到的,你还继续在原来的分支上正常工作,直到开发完毕后,再一次性合并到原来的分支(俺饿了...)上,这样,既安全,又不影响别人工作,而且Git分支的创建和修改、删除都是非常快的。
创建分支:
使用Git时的每一次提交,Git都会把它们串成一条时间线,这条线就是一条分支。咱们之前一直在master分支上操作,它是一条主分支,并且它指向的是最新的提交,而咱们前面章节讲的HEAD其实指向的就是master,这样就能确定当前分支,以及当前分支的提交点:每次咱们提交时,master就会向前移动一步。当咱们创建新的分支,例如Git新建了一个分支叫dms001,指向master相同的提交,再把HEAD指向dms001,就表示当前分支在dms001上了。(这里可能不好理解,不过你只要记住一点就行了:HEAD指向的是当前分支,而刚创建的分支dms001指向的是提交)
下面咱们开始操作一下:
首先创建一个dms001分支,然后切换到dms001分支上(即让HEAD指向该分支)
然后咱们可以通过git branch来查看当前分支是不是在dms001上(当然也可以直接使用git checkout -b dms001来创建并切换至dms001分支):
可以看到星号指向了dms001,这里暂且把星号(*)看成HEAD指针,如果大家对指针不怎么理解的话,可以看看我之前写的一篇“谈谈我对指针的认识”。
创建好分支后,咱们再来对之前hellogit.txt文件做做修改,先cat hellogit.txt看看里面的内容:
在该文件中再加一句:Create a named dms001 branch.
通过git status咱们可以看到,hellogit.txt确实被修改了,而且该状态位于工作区。
下面通过前两章讲的,将该文件状态变成暂存区状态:
然后提交到咱们的本地仓库:
最好咱们将分支切换回主分支master:
切换回master分支后,再看一下hellogit.txt文件,刚才添加的那句“Create a named dms001 branch.”不见了!因为那个提交是在发生在dms001分支上,而master分支此刻的提交点并没有变:
合并分支:
合并分支命令很简单,但请注意:合并分支一定要切换至主分支,并且要合并的分支必须commit了:
这时master就指向了dms001的提交了。
请注意:咱们实际工作时一般是没有权限merge的,但因为是学习,所以还是有必要了解一下的。
删除分支:
好了,既然已经merge好了,那么我们就可以放心的删除分支dms001了。删除命令如下:
好了,咱又只剩master分支了,可以看到无论是创建、合并还是删除分支,速度都是非常迅速的,这也是Git一个非常重要的特点,而且工作中常用分支来完成咱们的工作。
小结:
本章出现的一些概念和常用命令希望大家多花点时间消化和多多操作。
相关推荐
Git详解之三 Git分支.doc Git详解之四 服务器上的Git.doc Git详解之五 分布式Git.doc Git详解之六 Git工具.doc Git详解之七 自定义Git.doc Git详解之八 Git与其他系统.doc 附录 图解 Git.doc Git详解之九__Git内部...
git 删除分支和回滚的实例详解 【git 删除本地分支】 git branch -D br 【git 删除远程分支】 git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id 【本地...
Git 详解 : Git详解之一 Git起步 Git详解之二 Git基础 Git详解之三 Git分支 Git详解之四 服务器上的Git Git详解之五 分布式Git
Git 原理以及范例, 包括分支,合并。
下面我们就来学习一下Git分支管理吧。我们先来说一个简单的案例吧,你们团队中有多个人再开发一下项目,一同事再开发一个新的功能,需要一周时间完成,他写了其中的30%还没有写完,如果他提交了这个版本,那么团队中...
Git原理详解与实操指南\pdf\10 分支管理:掌握快速切换分支和新建分支能力-专栏. Git原理详解与实操指南\pdf\11 文件忽略进阶:忽略已加入版本控制器的文件-专栏. Git原理详解与实操指南\pdf\12 比较分支差异:展示...
Git 创建分支提交远程分支详解 1.创建本地分支 git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随便定义。 2.切换本地分支 git checkout 分支名,例如从master切换到...
主要介绍了idea+git合并分支解决冲突及详解步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本文主要介绍Git 分支管理的知识,这里整理了相关资料及命令详解,有需要的小伙伴可以参考下
本文来自segmentfault,文章介绍了创建与合并分支、分支的操作管理以及多人协作开发等相关知识。利用分支就可以实现多人开发的伟大模式,从而提高生产效率。在整个GIT之中,主分支(master)主要是作为程序的发布使用...
1. 查看远程分支 git branch -r origin/master 2. 查看本地分支 git branch *master 注:以*开头指明现在所在的本地分支 3. 查看本地分支和远程分支 git branch -a *master remotes/origin/master 4. 创建分支 *...
git安装讲解使用,提交git远程仓库详解,git分支详解,联系我可详解
Git树型结构一览图-快捷查找Git命令
git安装、配置、查看日志、分支合并、回滚 git安装、配置、查看日志、分支合并、回滚、
git可视化界面工具git gui的从入门到详细的教程,图文说明一看就懂。
7. Git 的基本使用02-TortoiseGit 操作本地仓库(分支) 7.1 分支的概念 7.2 为何要使用分支 7.3 创建分支 7.4 分支的查看切换 7.4.1查看分支 7.4.2切换分支 7.5 分支的合并与删除 7.5.1合并 7.5.2删除分支 8.tag 标签...
26.2.2 Git工作分支和 Subversion 如何对应/ 388 26.2.3 其他辅助文件/ 390 26.3 多样的 git-svn 克隆模式/ 390 26.4 共享 git-svn 的克隆库/ 393 26.5 git-svn 的局限/ 394 第5篇 搭建Git服务器 第27章 使用 HTTP ...
主要介绍了Git Tag 标签以及git命令之git tag给当前分支打标签的相关知识,需要的朋友可以参考下