jgitflow 和拉取请求

Posted

技术标签:

【中文标题】jgitflow 和拉取请求【英文标题】:jgitflow and pull request 【发布时间】: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 时出现冲突会发生什么

【问题讨论】:

【参考方案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

【讨论】:

以上是关于jgitflow 和拉取请求的主要内容,如果未能解决你的问题,请参考以下文章

markdown 功能分支和拉取请求:演练

TFS Build 2015、Gihub Enterprise 和拉取请求

markdown GitHub标准分叉和拉取请求工作流程

markdown GitHub标准分叉和拉取请求工作流程

markdown GitHub标准分叉和拉取请求工作流程

markdown GitHub标准分叉和拉取请求工作流程