• Tags , , , , ,         
  • 2017-11-22  22:56:23        
  • 94 °C    

    GIT的分支有什么用呢?其实就是平行开发,如果在两条分支上分别开发各自的功能,等两条分支一合并,这两个功能也就完成了。

    我们之前一直提交代码的版本库就是master分支,创建一条分支就是和master类似的,但是会是在上面开发别的需求的dev的分支,名字可以叫做dev分支,也可以叫别的。在实际开发的过程中,采用的是敏捷开发的迭代功能。就是不断创建分支,然后进行迭代合并的功能,对产品的需求进行不断的增加和调优。

    创建分支


    我们以及知道,在开发的时候,master是我们的主线,我们可以创建一条新的分支进行别的功能的开发,然后master如果有需求也是可以继续开发的,创建分支的命令如下:

    $ git checkout -b dev //创建并切换分支<span class="string">

    相当于两条下面的命令,创建分支,切换分支:

    $ git branch dev //创建分支
    $ git checkout dev //切换分支<span class="string">

     

    合并分支


    如果dev的功能开发好了,要和master的主线合并了,那么,我们就用下面的命令:

    $ git checkout master //切换回master
    $ git merge dev //合并分支
    $ git branch -d dev //删除分支,如果没有需要也可以不用删除

     

    分支管理


    通常情况下,GIT的合并会默认使用fast forward的模式,这种模式下,删除分支会丢掉分支的信息,我们可以使用 --no-ff参数来采用普通模式的合并:

    $ git merge --no-ff -m "dev merge master with no-ff" dev

    开发小贴士:一般master分支是比较稳定的,我们程序员一般都会在dev上面干活,然后采用merge的形式进行合并。

    暂存区的使用


    在软件开发中,很多时候都会要求你停下手头的活去处理别的事情,那么,我们的代码写到一半,commit不了,怎么办呢?这个时候GIT会提供一个暂时储存的功能,是你的代码暂时放在安全的区域,等你的紧急任务,比如紧急Bug修复完成之后再来切回来继续手头的工作,具体代码如下:

    $ git add . //现在在dev分支,代码添加文件到暂存区,但是没有commit
    $ git stash //把代码暂存起来
    $ git checkout master //切回主线
    $ git checkout -b EmergencyIssue //创建分支修改EmergencyIssue
    //After one hour...... EmergencyIssue fixed.
    $ git checkout master //修改好之后切回主线
    $ git merge --no-ff -m "merged bug fix EmergencyIssue" iEmergencyIssue //分支合并
    $ git branch -d EmergencyIssue //删除分支
    $ git checkout dev //切回dev的分支
    $ git status //查看状态,但是发现什么都没有
    $ git stash list //可以看到暂存区存起来的list
      stash@{0}: WIP on dev: 888888 add merge
    $ git stash pop //恢复stash后并删除stash的内容
    $ git stash list

    其实, git stash pop相当于下面两条命令:

    $ git stash apply //恢复stash的内容

    $ git stash drop //删除stash的内容
    我们可以多次用git stash来把内容存起来,只要用git stash apply加上指定的stash就可以恢复了

    $ git stash apply stash@{0}

    本文内容来自:git创建分支,git合并分支,git分支管理以及git暂存区的使用 – Break易站


    ---Author: Arvin Chen   ---Web Address: www.breakyizhan.com  (Break易站)

     
    转载请保留页面地址:https://www.breakyizhan.com/git/226.html