`

Git学习系列(五)分支管理详解

 
阅读更多

分支管理在咱们实际工作中经常用到,因此掌握分支对于咱们从事移动开发并且使用到了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详解之三 Git分支.doc Git详解之四 服务器上的Git.doc Git详解之五 分布式Git.doc Git详解之六 Git工具.doc Git详解之七 自定义Git.doc Git详解之八 Git与其他系统.doc 附录 图解 Git.doc Git详解之九__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 的核心思想是基于 snapshot,而不是基于差异(diff),这使得 Git 在版本控制方面具有...

    Git教程(分支管理、分支命令、命令详解、gitignore)

    系统性:本教程从Git基础概念讲起,逐步深入分支管理、命令详解及.gitignore配置等核心内容,帮助学习者构建完整的知识体系。 实战性强:通过丰富的实战案例和步骤演示,让学习者在动手实践中掌握Git的使用技巧,...

    Git详解_Git详解

    Git详解系列旨在深入探讨Git这一版本控制系统,帮助用户掌握其核心概念、常用命令以及最佳实践。以下是关于Git的详尽解析: 1. **Git起步**: Git是Linux之父Linus Torvalds为管理Linux内核开发而创建的分布式版本...

    git零基础入门到实战详解

    ### Git零基础入门到实战详解 #### 一、Git简介 **Git** 是一个开源的分布式版本控制系统,用于跟踪在软件开发过程中对文件的修改。它最初由Linus Torvalds于2005年创建,目的是为了更高效地管理Linux内核的源代码...

    Git分支管理详解

    下面我们就来学习一下Git分支管理吧。我们先来说一个简单的案例吧,你们团队中有多个人再开发一下项目,一同事再开发一个新的功能,需要一周时间完成,他写了其中的30%还没有写完,如果他提交了这个版本,那么团队中...

    Git客户端(TortoiseGit)基本使用详解

    通过本文档的学习,读者应能掌握TortoiseGit的基本配置与使用方法,了解如何进行项目克隆、本地提交、查看日志、推送代码以及分支管理等操作。此外,对于分支的高级使用也有了一定的了解,能够更好地应对复杂的项目...

    Git 原理详解及实用指南.zip

    3. **分支管理**:`git branch` 查看分支,`git checkout -b` 创建并切换到新分支,`git merge` 合并分支,`git branch -d` 删除已合并的分支。 4. **回溯与重置**:`git reset` 可以用来撤销提交,`git revert` ...

    Git 创建分支提交远程分支详解

    Git 创建分支提交远程分支详解 1.创建本地分支 git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随便定义。 2.切换本地分支 git checkout 分支名,例如从master切换到...

    Git原理详解与实操指南.zip

    Git原理详解与实操指南\pdf\10 分支管理:掌握快速切换分支和新建分支能力-专栏. Git原理详解与实操指南\pdf\11 文件忽略进阶:忽略已加入版本控制器的文件-专栏. Git原理详解与实操指南\pdf\12 比较分支差异:展示...

    Git版本管理用法详解

    Git是一个由Linus Torvalds在2005年创建的分布式版本控制系统,目的是更高效地管理Linux内核开发的源代码。Git的出现,主要源于之前版本控制系统Bitkeeper的付费问题。Linus Torvalds为了能够在不同的系统间自由地...

    小册-Git 原理详解及实用指南.zip

    Git 是一个分布式版本控制系统,由Linux之父Linus Torvalds于2005年创建,主要用于管理...通过阅读《Git 原理详解及实用指南》,你将能够系统地学习Git,提升你的版本控制能力,从而更高效地进行团队协作和项目管理。

    idea+git合并分支解决冲突及详解步骤

    通过以上步骤,可以有效地在Idea中管理和合并Git分支,同时解决可能出现的冲突,确保代码库的整洁和团队协作的顺畅。了解这些操作对于日常开发和团队协作至关重要,有助于提升开发效率和代码质量。

    Git 教程之分支管理详解

    本文将详细解读Git分支管理的相关知识点,包括创建分支、切换分支、合并分支以及删除分支等。 首先,什么是分支?在版本控制系统中,分支是指一个独立的工作流或版本线。分支允许开发者在不影响主开发线(master...

    git分支原理命令图文解析

    ### Git分支原理与命令详解 #### 一、Git分支机制概览 在深入探讨Git分支的具体操作之前,首先需要理解Git是如何管理和维护不同版本的。Git通过一系列的指针(称为引用,通常简称ref)来追踪项目的不同版本。每个...

Global site tag (gtag.js) - Google Analytics