在软件开发过程中,新功能的需求源源不断,每个新功能的添加都需要精细的管理,以保持代码库的整洁和稳定。为了确保主分支(通常是开发或主线分支)不被实验性代码干扰,当添加新功能时,开发者通常会遵循一种分支策略:为每个新功能创建一个独立的特性分支(feature branch)。在这个分支上完成开发后,代码会被合并回主分支,随后该特性分支会被删除。
比如,你接到了一项新任务:开发一个名为Vulcan的新功能,它将用于下一代星际飞船。你开始了新功能的开发流程:
$ git switch -c feature-vulcan
Switched to a new branch 'feature-vulcan'
经过五分钟的快速开发,你完成了Vulcan功能的代码编写。你添加了新文件vulcan.py
到暂存区,并检查了状态:
$ git add vulcan.py
$ git status
On branch feature-vulcan
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: vulcan.py
然后,你提交了这次更改:
$ git commit -m "add feature vulcan"
[feature-vulcan 287773e] add feature vulcan
1 file changed, 2 insertions(+)
create mode 100644 vulcan.py
接下来,你计划切换到主分支dev
来准备合并新功能:
$ git switch dev
通常,feature分支和bug分支的处理流程类似:开发完成后,你会将它们合并回主分支,然后删除这些分支。
然而,在这个关键时刻,你收到了一个不幸的消息:由于经费问题,Vulcan功能被取消了。虽然你的工作成果因此变得不再需要,但由于这个分支包含了机密信息,你必须立即销毁它。
你尝试使用以下命令删除feature-vulcan
分支:
$ 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
参数。
现在我们强行删除这个分支:
$ git branch -D feature-vulcan
Deleted branch feature-vulcan (was 287773e).