如何正确使用Git和分支

tgabmvqs  于 2024-01-04  发布在  Git
关注(0)|答案(2)|浏览(129)

我对Git的版本控制有点陌生。我读过this guide,并遵循了图 * here * 中显示的基本方法。尽管如此,我对如何使用Git分支将新功能的开发与现有代码分开有些怀疑。
这里有一个例子。假设在开始时,我的仓库包含以下两个主要分支:

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

当我需要开发新的功能或模块时,我从 Develop 创建分支并在那里启动新的代码项目。例如,我创建了三个新分支来添加与SunStarSuperNova相关的功能。现在,我的存储库包含五个分支:

  • 主分支:版本1.0.0
  • Develop 分支:1.0.0版后修改
  • NewModule_Sun 分支:将Sun添加到项目中(从 Develop 分支创建)
  • *NewModule_星星 * 分支:将星星添加到项目中(从 Develop 分支创建)
  • NewModule_SuperNova 分支:将SuperNova添加到项目中(从 Develop 分支创建)

对于Release 1.0.1,我想包含SunStar模块,但不包含SuperNova。因此,我将它们与Develop合并,然后将Develop与Release合并:
1.将NewModule_Sun合并到Develop
1.将NewModule_星星合并到Develop
1.将Develop合并到Master(1.0.1版)

  • Develop* 分支需要永久保留,但SunStar分支不再需要。它们将被删除:

1.删除NewModule_Sun分支
1.删除NewModule_星星分支
在这些更改之后,我的仓库包含以下三个分支:

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

==
首先,我是否正确使用了Git分支?
第二,我查看了最后一个 Develop 分支的历史,似乎我丢失了一些关于NewModules的信息。这正常吗?还有,是否可以将所有历史信息转移到 Develop 分支?

eagi6jfj

eagi6jfj1#

我是否正确使用了git?
是的,你描述的工作流是非常标准的工作流。你创建一些分支,你在它上面工作,当你完成的时候,你合并它并删除不需要的分支(除非你要继续在那个分支上开发)。
删除一个分支后,查看历史记录,在我看来,我已经丢失了有关该分支本身的所有信息.这正常吗?
是的,这很正常。
是否可以删除一个分支,但保留完整的历史信息?
不知道你在这里的意思。只要你在删除它之前合并了分支,历史记录仍然存在。你只是将它合并到另一个分支中,历史记录可以在那个分支上看到。如果这是你所要求的,没有办法知道一个分支是什么时候被删除的。

jtoj6r0c

jtoj6r0c2#

我建议你阅读 A successful Git branching model,它定义了一个很好的Git分支模式。
我发现我保留开发分支一段时间,直到时间使您在这些修订中所做的更改历史不值得保留(大约六个月),然后删除它们。

相关问题