【发布时间】:2012-04-18 01:06:40
【问题描述】:
我对使用 GIT 进行版本控制有点陌生。我读了这个Guide 并遵循图表HERE 中显示的基本方法。尽管如此,我还是对如何使用 git 分支将新功能的开发与现有代码分开存在一些疑问。
这是一个例子。假设一开始,我的存储库包含以下两个主要分支:
- 主分支(包含发布版本)
- 开发分支(包含新的修复或功能,以将它们与现有项目功能分开)
当我需要开发新功能或模块时,我会从 Develop 创建分支并在那里启动新的代码项目。例如,我创建了三个新分支来添加与Sun、Star 和SuperNova 相关的功能。现在,我的存储库包含五个分支:
- 主分支:发布 1.0.0
- 开发分支:发布 1.0.0 后的修改
- NewModule_Sun 分支:将 Sun 添加到项目中(从 Develop 分支创建)
- NewModule_Star 分支:将 Star 添加到项目(从 Develop 分支创建)
- NewModule_SuperNova 分支:将 SuperNova 添加到 Project(从 Develop 分支创建)
对于 1.0.1 版,我想包含 Sun 和 Star 模块,但不包含 SuperNova。所以,我将它们与 Develop 合并,然后将 Develop 与 Release 合并:
- 将 NewModule_Sun 合并到 Develop
- 将 NewModule_Star 合并到 Develop
- 将 Develop 合并到 Master(1.0.1 版)
需要永久保留 Develop 分支,但不再需要 Sun 和 Star 分支。他们被删除:
- 删除 NewModule_Sun 分支
- 删除 NewModule_Star 分支
在这些更改之后,我的存储库包含以下三个分支:
- 主分支:1.0.1 版
- 开发分支:发布 1.0.1 后的修改
- NewModule_SuperNova 分支:1.0.0 版后的修改(在未与 Star/Sun 分支合并时从 Develop 创建)
==
首先,我是否正确使用了 git 分支?
其次,我回顾了最后的Develop分支的历史,似乎丢失了NewModules的一些信息。这正常吗?而且,是否可以将所有历史信息传输到开发分支?
谢谢!!
【问题讨论】:
-
这可能会有所帮助。 stackoverflow.com/questions/2613903/…
标签: git version-control branch