git - 如何将分支与已发布的代码 merge ?

标签 git github github-release

我有一个修补程序需要应用于已发布的代码。我可以到达发布的主分支,但是当我尝试 merge 分支时,GitHub 会自动将默认分支更改为主分支。我不知道如何从 GitHub UI 执行此操作。有人可以帮忙吗?

我正在尝试做的事情:

  1. 我有一个版本

enter image description here

  • 我做了一个修补程序,但我当前的 master 远远领先于 Test12 版本。 我只需将此修补程序添加到 Test12 版本中。
  • 最佳答案

    首先,您不想将它们添加到 Test12 版本中,您想要创建一个新版本。一旦发布代码,就不应该更改它,因为这会造成同名下有不同代码的情况,这只会造成困惑。如果 Test12 在您发布下一个版本后变得完全无关,并且您不希望人们使用它(完全损坏、安全漏洞等),您可以删除该版本。

    从您的文字来看,您似乎只有一个分支,master .

    发布修复程序的快速解决方案可能是:

    1. 返回到与您的版本匹配的提交,并基于该提交创建一个新分支(它将有一个关联的标签,从您的屏幕截图中似乎被称为“1”)git checkout -b hotfix-branch 1
    2. Cherry-pick your hotfix来自mastergit cherry-pick <commit of hotfix>
    3. 在该分支上创建一个新标签 git tag -a 1.0.1 -m "Hotfix for issue..."
    4. 从该标签创建新版本。

    工作流程说明:

    我注意到您的版本只有一个数字。您应该查看semantic versioning ,最常用的三位十进制版本系统,使用每个数字来传达特定含义,很大程度上是向后兼容的。

    如果我的猜测是正确的,并且您只有一个分支,那么您还应该查看 git flow ,最常用的工作流程,可让发布修补程序等操作变得简单。

    关于git - 如何将分支与已发布的代码 merge ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56539381/

    相关文章:

    git - 为什么我可以 rebase 但我不能在 git 中 merge ?

    github - 如何从 GitHub 安装程序?

    android - repo sync -j2 要求对 GitHub 进行身份验证,失败

    travis-ci - 特拉维斯 CI : Deploy JAR to Github Releases

    git - 如何在 .gitignore 中使用 "!"作为字符串

    git - 如何删除远程 origin/refs/heads/master

    github - 从私有(private) github repo pip 安装轮

    github - 将二进制文件上传到 github 版本时维护可执行文件权限

    git - 检查 git 标签是否是某个父项或子项

    c# - ASP.NET Core错误开发模式仅在Area中