【问题标题】:Rewriting git history to convert master branch to development branch?重写 git 历史以将主分支转换为开发分支?
【发布时间】:2010-03-27 19:21:32
【问题描述】:

我正在寻找重写我的 git 存储库以使用我遇到的新分支模型:

http://nvie.com/git-model

但是现在我所有的历史都存在于 master 分支中。我想重写它(可能使用 git-filter-branch?)所以所有历史都在一个名为 development now 的分支中。
这可能吗?这绝对超出了我有限的 git 技能。

【问题讨论】:

    标签: git history


    【解决方案1】:

    只要创建一个开发分支,指向master的HEAD,然后就可以删除master分支了。

    顺便说一句。从第一次看那个分支模型,我不认为它是在真正考虑 git 的分支技术时制作的。因为它将分支解释为稳定的开发lines,这对于其他 VCSystems (如 SVN)是正确的,但对于 git 则不然。 git 中的分支只是提交的指针,你可以随意移动它们。

    【讨论】:

    • 甚至是 git branch -m master development。但你是对的,这是一个看起来很奇怪的工作流程。除了主“分支”之外,它主要是有意义的,它以某种方式从未从开发中合并,但设法增加版本号。如果去掉master,把develop改回master,给版本打上tag,会更合理一点。
    • 糟糕,我之前的评论被误导了——完整的工作流程实际上并未显示在顶部的主图中。它实际上是一个相当传统的 git 工作流,主题分支(功能、错误修复)分支出来,然后向上合并,当开发被认为稳定时,稳定分支会定期向上移动。它看起来是一个很好的工作流程 - 但 OP 在尝试遵循它之前可能需要更多地了解分支 mean 的含义。
    • 关于您的评论“您可以随心所欲地移动[分支]” - 如果移动您的意思是提交并合并到,那么是的。不过,您并不想真正移动(即非快进更改)它们。分支模型非常 git-ish:它有许多临时分支,用于最终版本集成、功能开发和错误修复。主要分支保持稳定,以便用户知道要拉取什么:来自 master 的稳定版本或来自 develop 的每晚构建。
    • 嗯。那我想我应该更详细地阅读那篇文章^^
    • 移动的意思是当合并(或快进)一个分支时,所有这些提交都会移动到新的目标分支,所以最终结果会看起来更线性,更少分裂进入树枝。
    猜你喜欢
    • 2018-03-11
    • 2019-08-08
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 2021-03-29
    • 2021-09-03
    • 2017-12-08
    相关资源
    最近更新 更多