使用 Git Flow 的正确流程是啥?

Posted

技术标签:

【中文标题】使用 Git Flow 的正确流程是啥?【英文标题】:What is the right process in using Git Flow?使用 Git Flow 的正确流程是什么? 【发布时间】:2020-07-09 14:26:41 【问题描述】:

我正在使用 Git Flow,“一个成功的 Git 分支模型”:https://nvie.com/posts/a-successful-git-branching-model/

但我不完全理解,所以我请求你的帮助。

在我们的项目中,我们使用的是 gitlab,项目中有 2 个分支,分别是 master 和 develop。

我被告知要从开发分支分支出来,所以这就是我所做的:

    首先是我克隆了远程仓库,默认分支是master 第二次我使用命令从开发分支分支 - git checkout -b develop origin/develop 现在在我的本地,我有两个分支 master 和 development 我在创建功能分支的时候有个问题,是不是只在本地? 比如使用命令git branch -b feature_branch,这个过程正确吗? 现在,如果上述过程是正确的,并且我在功能分支上进行了更改,是否应该将其合并到开发分支中?对吗? 现在如果我想推送本地更改,是否应该将其推送到远程开发分支?还是在 master 分支上? 如果我从我的团队中拉取更改,我应该从远程主分支拉取它吗?还是在远程开发分支中?

谁能解释一下,如果你能给出正确的命令,我也将不胜感激,谢谢。或一步一步的过程。

【问题讨论】:

使用 GitFlow 的唯一正确方法是不要。 【参考方案1】:

这取决于您团队的工作流程,但执行以下操作通常是安全的:

    克隆 git switch develop git switch -c feature_branch 提交内容 git push -u origin feature_branch 在 Gitlab 上向 develop 创建拉取请求 在开始新功能之前拉develop

【讨论】:

基本上在开始一个新功能时,我必须先删除我的feature_branch,然后返回开发分支然后拉取,然后再创建或开始一个新功能?对吗? 是的,但我只会在合并拉取请求后删除功能分支。并为每个功能分支使用不同的名称,即使您删除了之前的分支,以避免混淆和可能与远程分支发生冲突。 在这种情况下,我认为不必总是拉/变基到最新的develop(尽管这是最好的做法)。原因是,通过使用这个feature-branch-<topic>(当你在处理一个特性时分支出来),它允许你或你的其他团队并行工作。如果碰巧发生冲突,它只会在您创建拉取请求时显示出来(第 6 步)。

以上是关于使用 Git Flow 的正确流程是啥?的主要内容,如果未能解决你的问题,请参考以下文章

git-flow 与 github-flow 的优缺点是啥? [关闭]

Git:进入 Commit 阶段,正确的工作流程是啥?

git-flow工作流程

[GIT] Git 工作流程(Git flow, Github flow flow, Git lab flow)

Git flow 的流程

SourceTree 实现 git flow 流程