软件开发中,总有无穷无尽的新的功能要不断的添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码把主分支搞乱了,

所以每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。

现在你接到一个新的任务:开发代号为Faster的新功能,于是准备开发:

LV@LV-PC MINGW32 /c/gitskill (dev)
$ git checkout -b feature-faster
A hello.txt
M readme.txt
Switched to a new branch 'feature-faster'

LV@LV-PC MINGW32 /c/gitskill (feature-faster)
$ ls
hello.txt README.md readme.txt

LV@LV-PC MINGW32 /c/gitskill (feature-faster)
$ vim faster.txt

LV@LV-PC MINGW32 /c/gitskill (feature-faster)
$ git add faster.txt
warning: LF will be replaced by CRLF in faster.txt.
The file will have its original line endings in your working directory.

LV@LV-PC MINGW32 /c/gitskill (feature-faster)
$ git commit -m "faster branch commit"
[feature-faster d84bbe4] faster branch commit
warning: LF will be replaced by CRLF in faster.txt.
The file will have its original line endings in your working directory.
2 files changed, 2 insertions(+)
create mode 100644 faster.txt
create mode 100644 hello.txt

切回dev准备合并分支,一切顺利的话,feature分支和bug分支是类似的,合并,然后删除。

但是,就在此时,接到上级的命令,因为经费不足,新功能必须取消,

虽然白干了,但是这个分支还是必须得就地销毁:

LV@LV-PC MINGW32 /c/gitskill (dev)
$ git branch -d feature-faster
error: The branch 'feature-faster' is not fully merged.
If you are sure you want to delete it, run 'git branch -D feature-faster'.

没有合并前,不能删除。如果要强制删除需要使用git branch -D feature-faster命令。

LV@LV-PC MINGW32 /c/gitskill (dev)
$ git branch -D feature-faster
Deleted branch feature-faster (was d84bbe4).

小结:如果要开发新的功能,最好新建一个分支;

如果要丢弃一个没有被合并过的分支,可以通过git branch -D feature-faster来强行删除

Git 开发新的功能分支的更多相关文章

  1. Git工作流指南:功能分支工作流(转)

    一旦你玩转了集中式工作流,在开发过程中可以很简单地加上功能分支,用来鼓励开发者之间协作和简化交流. 功能分支工作流背后的核心思路是所有的功能开发应该在一个专门的分支,而不是在master分支上.这个隔 ...

  2. 使用Git分支开发新特性或修复Bug与使用Git分支开发新特性或修复Bug

    使用Git分支开发新特性或修复Bug 通过分支,可以在不影响原有代码的前提下改变代码,主要用于开发新功能新特性.下 一代产品 为已经发布的正式版修复bug 团队开发时为每个人建立一个分支,从而避免相互 ...

  3. Git开发分支管理

    远程仓库有master和dev分支的情况 1. 克隆代码 git clone https://somewhere.com/master-dev.git 2. 查看所有分支 git branch --a ...

  4. git 多人在同一分支上迭代开发时,如何保证分支提交历史保持线性

    背景 最近我们组几个同事都投入到了一个新项目,互相之间的功能耦合比较紧密,因此,是打算从master上新拉一个分支,可以理解为我们几个人的开发分支,以develop代替. 一开始,我们是打算像svn那 ...

  5. Git开发分支使用与管理规范

    最稳定的代码放在 master 分支上(相当于 SVN 的 trunk 分支),我们不要直接在 master 分支上提交代码,只能在该分支上进行代码合并操作,例如将其它分支的代码合并到 master ...

  6. 10.Git分支-分支管理(git branch命令)、分支开发工作流

    1.分支管理  git branch 不仅可以创建和删除分支,还可以做一些其他工作. 1.不带参数的 git branch ,得到本地仓库当前的分支列表.并且会显示,当期所在的分支,也就是HEAD所指 ...

  7. git创建新分支

    1.创建本地分支 git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随便定义.   2.切换本地分支 git ch ...

  8. git创建新的分支

    1.本地创建一个新的分支 git branch develop 2.切换到新创建的分支 git checkout develop 3.将新的分支发布到gitlab上 git push origin d ...

  9. Git把旧仓库的分支拉到新仓库中

    背景:项目新建了个git仓库(B仓库),放改版的新项目,现在运维所有项目构建都是在一个Jenkins里构建,然后拉镜像到相应服务器里,为了不让运维每次构建不同项目需要改git仓库地址,需要把原来项目仓 ...

随机推荐

  1. NS_ASSUME_NONNULL_BEGIN 延伸

    NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END 在.h文件中,可以看到这两个宏,翻看定义,这两个宏的代码是 #define NS_ASSUME_NONNUL ...

  2. Linux下安装awstats日志统计分析

    1. 下载安装 cd /data/software wget http://prdownloads.sourceforge.net/awstats/awstats-7.0-1.noarch.rpm 2 ...

  3. hdu1010

    #include <stdio.h>#include <string.h>#include <math.h> int n,m,t;char map[10][10]; ...

  4. HDU 1335 Basically Speaking(进制转换)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1335 Problem Description The Really Neato Calculator ...

  5. Haskell 函数式编程

    Haskell是纯函数式编程,它强调不函数不改变外部世界状态,即,一个函数的输出只由函数接收的输入决定.那如何与外面沟通呢,比如读取一个文件内容并输出这个文件内容(字符串),显然这种函数非纯函数,因为 ...

  6. JavaScript原生对象总纲

    一. javascript之Array类 创建js数组两种方式: var arr = [];  或var arr = new Array(); ()里可以指定长度,也可以不指定,指不指定都无所谓,因为 ...

  7. ESFramework 通信框架安全机制的设计与实现

    在分布式通信系统中,安全无疑是非常重要的.ESFramework通信框架提供了哪些安全保障了?由于ESFramework通信框架是应用层的开发框架,那么本文我们只讨论ESFramework通信框架在应 ...

  8. Chapter 15_4 子模块和包

    Lua支持具有层级性的模块名,可以用一个点来分隔名称中的层级. 比如,一个mod.sub模块,它就是mod的子模块.一个包(package)就是一个完整的模块树. 当你require "mo ...

  9. Ecstore1.2启用mongodb添加索引

    配置config(连接mongo) mongo define('KVSTORE_STORAGE', 'base_kvstore_mongodb'); define('MONGODB_SERVER_CO ...

  10. Python 学习笔记8

    在最想放弃的时候 想想美好的事情 想想明天. 今天继续看错误与异常. http://www.pythondoc.com/pythontutorial3/errors.html