zoukankan      html  css  js  c++  java
  • git学习——<五>git分支

    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查看就不存在任何元素了

     五、总结

     

  • 相关阅读:
    Sublime Text 3 格式化HTML CSS JS 代码
    CSS 温故而知新
    JQuery Mobile 学习笔记
    Eclipse ADT 代码注释模版
    Eclipse ADT 与VS 常用的快捷键 对比学习
    元组、文件、以及其他
    类型与运算
    python
    python 内置函数 lamda表达式。 open 文件方法
    python 基础 基本数据类型
  • 原文地址:https://www.cnblogs.com/brolanda/p/4748936.html
Copyright © 2011-2022 走看看