如何正确使用Git和分支

问题描述 投票:0回答:2

我对 Git 版本控制不太熟悉。我阅读了本指南,并遵循图中此处所示的基本方法。尽管如此,我对如何使用 Git 分支将新功能的开发与现有代码分离还是有一些疑问。

这是一个例子。假设一开始,我的存储库包含以下两个主要分支:

  • 主分支(包含发布版本)
  • 开发分支(包含新的修复或功能,以将其与现有项目功能分开)

当我需要开发新功能或模块时,我从 Develop 创建分支并在那里启动新的代码项目。例如,我创建了三个新分支来添加与

Sun
Star
SuperNova
相关的功能。现在,我的存储库包含五个分支:

  • 主分支:发布1.0.0
  • Develop分支:1.0.0发布后修改
  • NewModule_Sun分支:将 Sun 添加到项目(从 Develop 分支创建)
  • NewModule_Star分支:将Star添加到项目(从Develop分支创建)
  • NewModule_SuperNova分支:将SuperNova添加到项目(从Develop分支创建)

对于版本 1.0.1,我想包含

Sun
Star
模块,但不包含
SuperNova
。因此,我将它们与开发合并,然后将开发与发布合并:

  1. 将 NewModule_Sun 合并到 Develop 中
  2. 将 NewModule_Star 合并到 Develop 中
  3. 将 Develop 合并到 Master(版本 1.0.1)

需要永久保留 Develop 分支,但不再需要

Sun
Star
分支。他们被删除了:

  1. 删除NewModule_Sun分支
  2. 删除NewModule_Star分支

这些更改之后,我的存储库包含以下三个分支:

  • 主分支:发布1.0.1
  • Develop分支:1.0.1发布后修改
  • NewModule_SuperNova分支:1.0.0版本后的修改(未与Star/Sun分支合并时从Develop创建)

==

首先,我是否正确使用了 Git 分支?

其次,我回顾了最后一个Develop分支的历史,似乎我丢失了一些关于

NewModules
的信息。这正常吗?还有,是否可以将所有历史信息转移到Develop分支?

git version-control branch
2个回答
25
投票

我是否正确使用了 git?

是的,您描述的工作流程几乎是标准工作流程。您创建一些分支,对其进行处理,完成后合并它并删除不需要的分支(除非您要继续在该分支上进行开发)。

删除分支后,查看历史记录,在我看来,我 丢失了有关分支本身的所有信息...这正常吗?

是的,这是正常的。

是否可以删除分支但保留历史信息 完好无损?

不知道你在这里的意思。只要您在删除分支之前合并了该分支,历史记录仍然存在。您刚刚将其合并到另一个分支中,并且可以在该分支上看到历史记录。如果这是您所要求的,则无法知道分支何时被删除。


13
投票

我建议您阅读成功的 Git 分支模型,它定义了 Git 分支的良好模式。

我发现我将开发分支保留一段时间,直到时间使您在这些修订中所做的更改历史记录不值得保留(大约六个月),然后删除它们。

© www.soinside.com 2019 - 2024. All rights reserved.