【问题标题】:jgitflow and pull requestjgitflow 和拉取请求
【发布时间】:2016-06-16 11:04:25
【问题描述】:

我是 git 新手。我对 git 的基本知识知之甚少,而且我在使用它方面相当成功。

所以我有一个 master,develop 分支。从开发我已经分支到一个特性分支和一个发布分支。为了从开发分支出来,我使用了以下命令。

jgitflow feature-start from develop
jgitflow:release-start from develop

现在我已经完成了这个功能,我想合并到开发中。我是第一次这样做。现在我很困惑如何去做。理想情况下,我应该使用以下命令:

jgitflow:feature-finish

我认为另一种选择是执行拉取请求。

请告诉我哪些选项是正确的,如果在使用 jgitflow:feature-finish 时出现冲突会发生什么

【问题讨论】:

    标签: maven-release-plugin jgit jgitflow-maven-plugin


    【解决方案1】:

    拉取请求是必不可少的,因为它将审查更改。但是,如果您从 PR 合并,您仍然可以运行 jgitflow:feature-finish,尽管它会导致保留远程分支(如果之前推送)。 理想的方法是

    • 为该功能提出 PR,获得批准。
    • 运行 feature-finish 命令合并更改以开发和清理本地 和远程功能分支。

    要解决冲突,最好从本地开发中提取,而不是通过功能完成合并,因为它可能会变得混乱。

    【讨论】:

      【解决方案2】:

      详情请见https://bitbucket.org/atlassian/jgit-flow/wiki/goals/feature-finish

      根据您的要求使用必要的标志,如keepBranch、squash。

      您还应该将 featureRebase 设为 true。这将在从您的案例中开发的原点合并之前重新设置功能分支。这将使您能够以更好的方式处理冲突。

      【讨论】:

        【解决方案3】:

        在尝试完成功能时避免冲突的最简单方法是在执行finish-feature 之前遵循以下工作流程:

        • git fetch:确保您的本地 repo 副本是最新的
        • git checkout develop:转至develop
        • git merge origin/develop:确保您的本地开发是最新的(origin 是这里的远程名称)
        • git checkout <feature-branch>: 再去你的特性分支
        • git merge develop: 合并和解决冲突,如果有的话(在你的特性分支上)
        • mvn jgitflow:feature-finish你已经解决了冲突,所以这会起作用

        我会推荐另一个答案中提到的featureRebase 选项,因为你说你只知道一些关于 Git 的基本知识。如果您已经推送了本地功能分支并且其他人正在处理它,那么 Rebase 可能会使事情复杂化。
        Rebase 只能在本地分支上安全使用,因为它会更改历史记录。

        关于拉取请求,请参阅 https://www.atlassian.com/git/tutorials/making-a-pull-request/how-it-works 上的 Gitflow Workflow With Pull Requests

        【讨论】:

          猜你喜欢
          • 2011-05-05
          • 2014-04-30
          • 2016-10-21
          • 1970-01-01
          • 2014-04-07
          • 2014-11-30
          • 1970-01-01
          • 1970-01-01
          • 2014-04-01
          相关资源
          最近更新 更多