git学习——<一>git安装

git学习——<二>git配置文件

git学习——<三>git操作

git学习——<四>git版本管理

一、提出问题

  今天开发的过程中遇到一个问题,A组接到开发任务要修改file文件,B组在此之前的15天为了完成自己的开发任务对file文件进行了修改,为了同步代码,B组将自己未完成的模块file文件提交到了cvs上。A对此一无所知,A组在完成开发任务后,把file文件完全上到了现网环境,报错了。

  当然,避免上述问题的途径很多,有想法的朋友可以帮忙提议解决下。但是在使用git的时候,我就突然想到,如果每个团队是在主分支上迁出一个分支工作,直到自己的工作完成之后,再把代码提交到主分支上,那么别人上文件的时候从主分支上迁出的文件上现网环境也不会出上述的问题了。所以,学会建分支,在分支上开发代码,也很实用。

二、git分支

  git把每次提交串成一条时间线,这条时间线就是一个分支。

  如前面几个讲解里所讲到的:首次提交是一个master主分支。head不是指向提交,而是指向master,master才指向提交,故head指向的就是“当前分支”。创你建一个list分支,此时,就是一个创建了一个叫list的指针,指向了master相同的commit。而你的head指向了list,其他人的head依然指向master。

同理,如果你想删除list分支,其实没有删掉list分支提交的东西,只是删除了list的指针。

  1.创建list分支

git checkout -b list    其中-b表示:创建并切换
  2.查看当前分支
    git branch会列出所有分支,当前分支有一个*号

  3.提交内容到当前的分支

    git add
git commit

  4.list分支的工作完成后,切换回master分支

    git checkout master

  5.把list分支的工作成果合并到master分支上

    git merge list
git merge命令用于合并指定分支到当前分支

  6.删除list分支

    git branch -d list

三、解决冲突

  1.在master上创建分支

git branche -b list

2.在该分支上编辑readme.txt文件

       3.然后切换到master分支git checkout master,编辑readme.txt文件
       4.合并list到master
        git merge list

5.解决冲突

  冲突会包留在文件中,两个部分被===========================分割开。需要人工方式修改整合文件。

  6.删除分支

git branch -d list

  7.查看分支合并的路径

git log --graph --pretty=oneline --abbrev-commit

四、bug分支

  假设,你在list分支上工作。此时master上出现了bug需要修复,那么你必须切换到master分支并修复该bug。

1.于是,你需要保存当前list分支上已工作的内容:把当前工作现场“储藏”起来
    git stash

可以用git status查看当前工作区是否干净

2.切换到要修复bug的分支,然后创建一个新的分支去修复bug
    修复完bug,提交合
3.切换回你之前的工作分支,恢复工作区
    可以使用git stash list查看之前保存的工作区中的内容
git stash pop
  可以恢复原工作区,并把stash中保留的内容删除掉,否则会一直存在。
    相当于如下两条命令:
            git stash apply
            git stash drop
    再用git stash list查看就不存在任何元素了

五、总结

git学习——<五>git分支的更多相关文章

  1. git学习(五) git diff操作

    git diff操作 git diff用于比较差异: git diff 不加任何参数 用于比较当前工作区跟暂存区的差异 git diff --cached 或者--staged 对比暂存区(git a ...

  2. 【git学习五】git基础之git分支

    1.背景                最早用github的时候,我傻傻的问舍友大神,git里面的branch是干什么的,他用了非常直白的解释,我至今还记得."branch就是你能够自己建立 ...

  3. Git 学习之git 分支(三)

    Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...

  4. git学习之branch分支

    作为新手,站在我的角度肤浅的来理解,分支就是相当于开辟了一个新的临时工作区,在这个工作区进行文件代码改动,然后在合并到master主工作区,这样能保证主工作区的安全性和稳定性,对于团队协作尤为重要. ...

  5. git学习4:分支管理

    每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,这个分支叫主分支,即master分支,HEAD指向master,master指向提交,所以,HEAD指向的就 ...

  6. git学习笔记09-bug分支-自己的分支改到一半了-要去改bug怎么办?

    当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交: 并不是你不想提交,而是工作只进行到一半,还没法 ...

  7. git学习(五):git diff魔法

    不同参数下git diff输出并不相同,理解了工作区,暂存区和版本库的关系之后就很容易理解diff了. 工作区.暂存区和版本库的目录树浏览 清除工作区中未被git管理的文件 git clean -fd ...

  8. Git系列五之分支管理

    1.Git分支管理 分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之 ...

  9. git入门五(分支合并冲突和衍合)

    分支合并冲突的处理   合并分支的冲突时在不同的分支中修改了同一个文件的同一部分,程序无法把两份有差异的文件合并,这时候需要人为的干预解决冲突.当前处于master 分支,当dev 分支和master ...

随机推荐

  1. OpenCV使用标定图

    本文由 @lonelyrains 出品,转载请注明出处.  文章链接: http://blog.csdn.net/lonelyrains/article/details/46915705 上一步生成标 ...

  2. 搭建springmvc框架的另一种思路

    在一个完整的项目里搭建springmvc框架的时候, 通常情况下,初学者在配置的时候,总是会把"中央控制器的名字"-servlet.xml文件放到/Webroot/WEB-INF下 ...

  3. CSS——伪元素

    CSS伪元素 伪元素的语法: selector:pseudo-element {property:value;} 作    用 添加特殊样式 :first-line 伪元素 "first-l ...

  4. SHLVL--shell终端深度

    参考:How And Why You Would Use The $SHLVL Variable SHLVL代表shell打开的深度,进程第一次打开shell时$SHLVL=1,然后在此shell中再 ...

  5. [转][Python基础]Python中的Lambda表达式

    引用自:http://www.cnblogs.com/evening/archive/2012/03/29/2423554.html 在学习python的过程中,lambda的语法时常会使人感到困惑, ...

  6. python解析文本文件演示样例

    目的:查找文本中还有Sum/Avg的行中低三个竖线后第一个浮点数 思路:先使用python读取文本中一行,然后切割字符串.查找含有Sum/Avgkeyword的行.取出想要的结果 文本局部: .... ...

  7. CentOS 6.5 安装 php7 教程 包很重要使用lnmp1.4里面的包

    ./configure \ --prefix=/usr/local/php-7.0.1 \ --with-mysql=mysqlnd \ --with-pdo-mysql=mysqlnd \ --wi ...

  8. php 的rabbitmq 扩展模块amqp安装

    php 的rabbitmq 扩展模块amqp安装 2017年10月08日 10:34:22 阅读数:240 使用PHP开发,要使用中间队列rabbitmq, 必须要安装PHP的扩展模块amqp, 服务 ...

  9. 一种基于匹配回朔的 css3 选择器引擎实现

    介绍 CSS 选择器是一种应用于 DOM 节点查找场景的特定微型语法, 本质上和正则表达式一样都是一种模式匹配语言,灵活使用可以方便得获取指定位置的节点集合. 目前 W3C 推荐标准为 Selecto ...

  10. JavaScript有关的10个怪癖和秘密(转)

    数据类型和定义 -------------------------------------------------------------------------------------------- ...