在git中提倡使用分支,这就涉及到了分支的创建和合并。在git中我们的每次提交类似于一个链表,按照时间顺序向下排列,大约画了一个图,每个小圆圈代表一次提交,在git中有有一个主分支master,我们新建的分支最后都要合并到主分支上。

参考了廖雪峰的文章,这里讲 到了一个head(这里就当作他是一个指针,没有认真探讨过这个问题),用head来确定当前分支,比如在master分支(主分支),head指向了最后一次提交,代表当前是在master分支上完成的操作。同样是上面的图加上一个head指向代表当前正在master分支上操作。

如果在master上操作,我们每次的提交都会导致这条分支在一点一点增长。为了避免每次操作主分支错误的代码提交导致的错误,我们需要再创建一个分支,先在这个新建的分支上提交,最后合并到主分支(master)上。

创建一个test分支,并把当前操作的分支切换到这个新建的test分支上,head指向的是test这条分支

创建test分支、切换到test分支

git branch test
git checkout test

上面的两条语句可以用一句来完成,在checkout后面加上-b就可以

git checkout -b test

可以查看当前分支情况(有哪些分支,当前操作的分支)

git branch

可以看到当前有两条分支,当前指向test分支(绿色前面有*)

接下来就可以对文件进行操作,直接把编辑好的文件复制过来

利用命令把文件添加到暂存区,比如我们添加了一个b.txt文件

git add a.txt

也可以在add后面写上.添加所有文件

git add .

如果发现提交暂存的文件有问题,是可以撤销的,查看做出什么修改,并撤销修改

git status
git reset head <文件名字>

在执行git status时就已经告诉我们撤销应该怎么做

文件加到暂存区之后,我们需要提交

git commit -m "提交说明"

提交b.txt作为测试

注意以上的操作都是在test分支上进行的,这张图准确来说放在这里最合适,因为在test分支上完成了一次提交,上面只是创建一个分支并切换到test上

接下来我们应该把test分支上提交的内容合并到主分支master上,在此之前我们先要切换到主分支上,否则是不能执行合并

git checkout master
切换到master分支上查看文件发现刚刚添加的b.txt文件不存在,因为b.txt是在test分支上添加的。

执行合并命令,合并的是test分支,最后的参数是要合并分支的名字

git merge test

这里在git中查看文件列表可以使用windows中的dir命令,也可以使用linux中的ls命令,网上给出的解释是git for window提供了一个环境,而git正常运行就是要依赖这个环境

这里看图比较容易理解,下面的那条是test分支,上面的是master分支

如果没有删除test分支test分支可以继续向后延伸,也就是可以继续在test分支上提交,每次的合并都是把test分支上的内容合并到master(主分支上),如下图:

也可以选择删除test分支,在删除之后还是可以创建名为test的分支

git branch -d test

查看分支,可以看到只剩下master分支

git分支的创建与合并的更多相关文章

  1. git 分支的创建、合并、删除

          基本概念与命令 分支(branch):每次提交,Git都把提交的内容串成一条时间线,这条时间线就是一个分支 .   git 分支的创建 git branch branchName git ...

  2. Git 分支管理 创建与合并分支

    分支在实际中有什么用呢? 假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了. 如果等代码全部写完再一次提交, ...

  3. git 分支的创建与合并

    首先我们需要先创建一个新的dev分支,然后切换到dev分支: $ git checkout -b dev //命令语句 Switched to a new branch 'dev' //成功执行输出语 ...

  4. eclipse git 文件状态 及git分支的创建与合并与删除

    eclipse里面Git文件状态及图标展示   EGit会出现如下图标,其对应状态及意义如下:      1)忽略[ ignored ]:仓库认为该文件不存在(如bin目录,不需要关注).通过右键Te ...

  5. 4.Git分支查看&创建&切换&合并

    查看分支 git branch -v # 查看分支,*代表当前所在的分支     创建分支 git branch hot-fix # 创建一个hot-fix分支,然后使用-v查看 # 可以看到除了ma ...

  6. 9.Git分支-分支的创建与合并-02

    在 8.Git分支-分支的创建与合并-01 主要通过一个例子介绍了分支的新建,以及在工作中,git分支的新建切换以及使用,这里主要介绍分支的合并.这里的例子和8.Git分支-分支的创建与合并-01 的 ...

  7. 使用TortoiseGit操作分支的创建与合并功能集合

    使用TortoiseGit操作分支的创建与合并 本文在介绍了软件安装和设置后, 写了TortoiseGit 常用的一些功能, 包括: 创建新库 添加文件及文件夹 创建分支 看分支情况及修改log 比较 ...

  8. Git:分支的创建、合并、管理和删除

    了解分支 如果想实现多人协作.划出Bug区.Feature区等功能,就需要分支功能.(确实很强大的地方) 每次commit时,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条 ...

  9. git分支的创建、删除、切换、合并

    需求背景 开发新功能和修改bug一般放在新建分支,如果觉得可行,可以合并到master分支上. 方式 1.查看分支 git branch (查看本地分支及当前所属分支) git branch -a ( ...

随机推荐

  1. vim使用教程

    vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...

  2. R︱mlr包帮你挑选最适合数据的机器学习模型(分类、回归)+机器学习python和R互查手册

    一.R语言的mlr packages install.packages("mlr")之后就可以看到R里面有哪些机器学习算法.在哪个包里面. a<-listLearners() ...

  3. 在bmp上添加字符2

    void CTextOnbmpDlg::OnButton2() {  // TODO: Add your control notification handler code here  FILE *f ...

  4. Linux 系统裁剪笔记 4 (内核配置选项及删改)

     CDROM filesystem support(CONFIG_ISO9660_FS)[Y/m/n/?]有标准光驱的系统应该选Y.Minix fs support(CONFIG_MINIX_FS)[ ...

  5. PHP学习笔记--Php预定义超全局变量$_GET

    Php中的许多预定义变量都是超全局的,无需使用global声明 超全局变量 不需要声明就可以直接使用 提供超全局变量(数组)为了让程序员更快捷的编程 $GLOBALS— 引用全局作用域中可用的全部变量 ...

  6. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的 ...

  7. C#图解教程 第十五章 接口

    接口 什么是接口 使用IComparable接口的示例 声明接口实现接口 简单接口示例 接口是引用类型接口和as运算符实现多个接口实现具有重复成员的接口多个接口的引用派生成员作为实现显式接口成员实现 ...

  8. 由内搜推送思考Kafka 的原理

    刚入公司的两周多,对CDX项目有了进一步的认识和理解,在这基础上,也开始了解部门内部甚至公司提供的一些中间服务.CDX项目中涉及到的二方服务和三方服务很多,从之前写过的SSO,Auth,到三方图库的各 ...

  9. 将nodejs代码部署到阿里云服务器

    概述 最近在做一个小项目,其中用nodejs做了个数据转发的接口,之后需要将这部分代码部署到服务器上面,并使用Nginx做反向代理.期间使用搜索引擎大量查阅了其他同鞋的经验,不过写的大多很笼统,因此踩 ...

  10. table问题汇总

    平时要使用 table 的次数说多不多,说少不少,但每次使用必定会被几个问题"坑"一下,所以这篇博客用来记录下table那些"小坑".但 table 也会有很多 ...