Git分支-分支管理

在实际开发中,一般企业中开发一个项目的分支策略:

主分支(master)

Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。
代码库应该有一个、且仅有一个主分支。
master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活。

开发分支(develop)

主分支只用来分布重大版本,日常开发都是在这个分支上完成。
到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本。

功能分支(feature)

它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。
每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。

预发布分支(release)

预发布分支,它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。预发布分支是从Develop分支上面 分出来的,预发布结束以后,必须合并进Develop和Master分支。

bug分支(fix bug)

软件正式发布以后,难免会出现bug。有了bug就需要修复,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

如果当前分支的工作还未完成,bug又急于修改,那该怎么办呢?

  1. 创建文件‘bug.txt’,并提交
  2. 创建新分支

    1
    2
    $ git checkout -b develop
    Switched to a new branch 'develop'
  3. 修改文件,并查看状态

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ git status
    On branch develop
    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in working directory)

    modified: bug.txt

    no changes added to commit (use "git add" and/or "git commit -a")

    此时需要修改一个紧急的bug。我们可以利用stash功能,把当前工作现场“储藏”起来,修改完bug后再恢复现场后继续工作。

  4. 保存现场

    1
    2
    3
    $ git stash
    Saved working directory and index state WIP on develop: 3978a2e add bug.txt
    HEAD is now at 3978a2e add bug.txt
  5. 再查看工作区状态

    1
    2
    3
    $ git status
    On branch develop
    nothing to commit, working directory clean

    工作区是干净的,就可以创建bug分支进行修改bug。

  6. 修改bug完成后,切换到之前的‘develop’分支
  7. 查看保存现场

    1
    2
    $ git stash list
    stash@{0}: WIP on develop: 3978a2e add bug.txt
  8. 恢复现场

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ git stash pop
    On branch develop
    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in working directory)

    modified: bug.txt

    no changes added to commit (use "git add" and/or "git commit -a")
    Dropped refs/stash@{0} (ea54fb954976da63842dcdd7faab12092ae71130)

Notes:

  • 你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:

    1
    $ git stash apply stash@{0}
  • 用git stash apply恢复后,stash内容并不删除,你需要用git stash drop来删除;

其它分支

在Git中,由于分支是如此的强大,所以大家可以根据需要创建即可。

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!