|
|
git_branch_feature |
|
## feature分支
|
|
\ No newline at end of file |
|
|
|
|
|
在开发过程中,除了 bug 外,也还会有无穷无尽的新的功能要不断添加进来。
|
|
|
|
|
|
|
|
添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个`feature`分支,在上面开发,完成后,合并,最后,删除该`feature`分支。
|
|
|
|
|
|
|
|
现在,你终于接到了一个新任务:开发代号为`Vulcan`的新功能,该功能计划用于下一代星际飞船。
|
|
|
|
|
|
|
|
于是准备开发:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ git switch -c feature-vulcan
|
|
|
|
Switched to a new branch 'feature-vulcan'
|
|
|
|
```
|
|
|
|
|
|
|
|
5分钟后,开发完毕:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ git add vulcan.md
|
|
|
|
|
|
|
|
$ git status
|
|
|
|
On branch feature-vulcan
|
|
|
|
Changes to be committed:
|
|
|
|
(use "git reset HEAD <file>..." to unstage)
|
|
|
|
|
|
|
|
new file: vulcan.md
|
|
|
|
|
|
|
|
$ git commit -m "add feature vulcan"
|
|
|
|
[feature-vulcan d12cf23] add feature vulcan
|
|
|
|
1 file changed, 3 insertions(+)
|
|
|
|
create mode 100644 vulcan.md
|
|
|
|
```
|
|
|
|
|
|
|
|
切回`dev`,准备合并:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ git switch dev
|
|
|
|
```
|
|
|
|
|
|
|
|
一切顺利的话,`feature`分支和`bug`分支是类似的,合并,然后删除。
|
|
|
|
|
|
|
|
但是!就在此时,接到上级命令,因经费不足,新功能必须取消!虽然白干了,但是这个包含机密资料的分支还是必须就地销毁:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ git branch -d feature-vulcan
|
|
|
|
error: The branch 'feature-vulcan' is not fully merged.
|
|
|
|
If you are sure you want to delete it, run 'git branch -D feature-vulcan'.
|
|
|
|
```
|
|
|
|
|
|
|
|
销毁失败。Git 友情提醒,`feature-vulcan`分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用大写的`-D`参数。。
|
|
|
|
|
|
|
|
现在我们强行删除:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ git branch -D feature-vulcan
|
|
|
|
Deleted branch feature-vulcan (was d12cf23).
|
|
|
|
```
|
|
|
|
|
|
|
|
终于删除成功! |