如何正确使用git和分支

Mar*_*rcx 31 git version-control branch

我对GIT的版本控制有点新意.我阅读本指南并遵循此处图中显示的基本方法.不过,我对如何使用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版,我想包含SunStar模块,但不是SuperNova.所以,我将它们与Develop合并,然后将Develop与Release合并:

  1. 将NewModule_Sun合并到Develop中
  2. 将NewModule_Star合并为Develop
  3. 合并开发成硕士(1.0.1版)

develop分支需要被永久保存,但SunStar分支机构不再需要.他们被删除:

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

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

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

==

首先,我正确使用git分支吗?

其次,我回顾了最终开发分支的历史,似乎我已经丢失了一些关于NewModules.这是正常的吗?并且,是否可以将所有历史信息传输到Develop分支?

谢谢!!

ral*_*nja 19

我是否正在使用git?

是的,您描述的工作流程几乎是标准工作流程.你创建了一个分支,你在它上面工作,当你完成它时,你合并它并删除不需要的分支(除非你将继续在该分支上开发).

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

是的,这是正常的.

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

不确定你的意思.只要您在删除分支之前合并了分支,历史记录仍然存在.您只需将其合并到另一个分支中,就可以在该分支上看到历史记录.如果这是您要求的,那么无法知道何时删除分支.

  • @Marcx我来晚了,但也许您仍在寻找这个标志“ git merge --no-ff branchname” (2认同)

Sim*_*one 11

我建议你阅读http://nvie.com/posts/a-successful-git-branching-model/,它定义了git分支的良好模式.

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