代码之家  ›  专栏  ›  技术社区  ›  Jim

如果忘记创建一个新的Git特性分支呢?

git
  •  1
  • Jim  · 技术社区  · 6 年前

    以下是我的工作流程:

    1. 首先,我的dev、staging和master分支都是相同的。然后创建一个新的要素分支:

      git checkout -b new-feature dev
      
    2. 一旦构建了新特性,我就将其合并到我的暂存分支中,将更新的代码推送到我的暂存服务器并在那里进行测试。

    3. 然后,我将我的dev分支合并到我的主分支,并将主分支推送到我的生产服务器。

    在这一点上,所有四个分支都是相同的,我通常会删除新的功能分支,并从dev签出一个较新的新功能分支,但我忘了这么做。

    将更改的文件移到新功能分支中的首选方法是什么?

        git checkout -b newer-new-feature older-new-feature
        git push origin --delete older-new-feature
        git br --delete older-new-feature
    

    顺便说一句,我确实希望将旧的新功能分支的历史记录保存在新的新功能分支中。

    3 回复  |  直到 6 年前
        1
  •  0
  •   alfunx Kevin Islas    6 年前

    在这一点上,所有四个分支都是相同的,我通常会删除新的功能分支,并从dev签出一个较新的新功能分支,但我忘了这么做。

        2
  •  1
  •   eftshift0    6 年前

    最简单的方法是从主分支(或任何您想用作特性基础的分支)开始一个新分支,然后仔细挑选“在错误的分支上”所做的修订。然后您可以将另一个功能分支设置到它应该位于的位置(因为它是随着新功能的提交而移动的,对吧?)。假设您为新功能使用了3个版本:

    git checkout -b new-feature origin/master
    git cherry-pick old-feature~3..old-feature
    git branch -f old-feature old-feature~3
    

        3
  •  0
  •   ensc    6 年前

    git checkout -b feature-new feature-old
    git rebase --onto production <branch-point>
    

    使用 gitk 为了得到 <branch-point>