Git Flow 代码示例 接触git flow也有很长一段时间了,中途偶尔用了一下,由于自己的手上的项目也不是大型项目,基本都是两三个人在做,master主要还是我自己,用git flow反而比较麻烦 正好这段时间接手了一个项目,想试试git flow,然后就又了解了一下。git flow 的流程,可以用下面纯git命令来实现。 a. 完成Feature git pull origin develop git checkout develop git merge --no-ff feature1 git push origin develop 完成Release git checkout master git merge --no-ff release-0.1.0 git push git checkout develop git merge 完成Hotfix git checkout master git merge --no-ff hotfix-0.1.1 git push git checkout develop git merge
Git Flow and Release Process Library Version Compatibility Spartacus 项目由一组库组成。 这些版本在 npm 上的最新标签下可用。 当 Spartacus 团队完成该版本所有新功能的开发后,就会发布一个 rc 版本,这意味着功能和公共 API 不会有任何重大变化。 下一个版本在 npm 上的 next 标签下可用。 注意:强烈建议您不要在生产设置中使用 next 版本。这是因为从next 版本升级可能比从一个稳定版本升级到另一个要困难得多。 Git Flow Spartacus 项目中的流程围绕前面部分中描述的版本支持构建。 develop 分支是默认分支,用于新版本开发,包括次要和主要版本。 所有功能和错误修复都合并到这个分支。 Flow for Smaller Features 从 develop 分支创建一个新的 feature /GH-xxxx 分支。 开发您的功能。
精美礼品等你拿!
VV采用标准的Git flow,下面将从工作流图与抽象模型两个方面,来描述与规范 Git flow。 2.2 命名规范: 标准Git flow 认为Feature分支可以是,除以master, develop, release-, 和 hotfix-_ 开头的任何串。 对于release发布后,或是其它特性引入的bug,我们引入以"bugfix-"为开头的新特性。 至此我们基本遵守了标准 Git Flow 开发模型。 develop分支 develop分支在git flow 中承担了最为复杂与重要的任务。 它是feat-分支、release-分支,和bugfix-分支的起点。 问题:你好,我最近在尝试使用 git-flow 有一个问题我一直没有找到答案,问题: 在开发分支中开发完的功能在当前发布版本是不需要发布出去,不知道你有没有合适的处理方案,谢谢 单独拉出来一个分支,把目前不需要的提交用
索引 配置 配置文件 创建 本地修改 搜索 提交历史 移动/重命名 分支与标签 更新与发布 合并与重置 撤销 Git Flow 配置 列出当前配置: $ git config --list 列出 repository 'message here' 列出所有标签: $ git tag 列出所有标签及其附加信息(标签信息或提交信息): $ git tag -n ---- 更新与发布 列出当前配置的远程仓库: $ git 发布新特性分支到远程服务器,以便其它用户使用该分支。 git flow feature publish MYFEATURE 获取发布的新特性分支 获取由其它用户发布的新特性分支。 flow release finish RELEASE 不要忘记使用 git push --tags 将标签推送到远程。 开始 git flow 热修复 像其它 git flow 命令一样,热修复分支开始自: $ git flow hotfix start VERSION [BASENAME] VERSION 参数标记新的热修复发布名称
git-flow 定义了一个围绕项目发布的严格分支模型,用于管理多人协作的大型项目,实现高效的协作。(ps:文末有练习的链接) 分支的介绍: master 可发布的内容。 release 发布分支。某个版本需要发布时,从master上fork。 流程的示意图如下: ? 详细介绍见这里。 对于不是很复杂的项目,可以把省去 develop 分支。 想练习下,点这里。
因为是稳定的版本,所以每次版本发布都要在这个分支上添加标签(tag)。 二、 Git Flow 工具的使用 基本上各种git的客户端软件都会支持Git Flow 工作模型。sourcetree 上使用git flow 工作模型就很流畅,体验很好。 我们来学习下Git Flow 的命令行操作。 git flow 是一种git的使用规范,当然也有相应的工具集,命令行命令让我们使用。 图片 1、起步 安装git flow brew install git-flow-avh 初始化git flow 工具库 git flow init 之后都按照默认的去配置,直接按enter键继续。 branch * develop master roverliang$ 获取一个发布的新特性的分支 git flow feature track origin MYFEATURE 3、release
发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。 列出当前仓库的所有标签:git tag ? 2. 列出所有标签及说明:git tag -n ? 3. 搜索符合条件的标签:git tag -l "1.0.*" ? 4. 查看标签信息:git show v1.0.1 ? 二、创建标签 1. 创建标签:git tag "指定标签名" 2. 删除标签: git tag -d 标签名 git tag -d v1.0.1 2. 删除远程标签(Git1.7版本以后): git push origin --delete tag <tagname> 四、本地标签推送到远程 1.
打标签 git支持两种类型的标签:轻量标签与附注标签。 轻量标签是一个指向特定提交的引用,但是它不可被移动。 打一个轻量标签很容易,使用git tag <tagname>即可: $ git tag v0.0 git会给当前分支最近的提交对象打上v0.0标签。 查看标签 使用git tag即可查看标签: $ git tag v0.0v1.0 这表示我们目前有两个标签:v0.0和v1.0。 删除标签 本地删除标签很简单: git tag -d v0.0 这条命令会删除v0.0标签。 删除远程标签需要使用git push命令: $ git push origin :refs/tags/v0.0 这会删除远程的v0.0标签。
打标签 打标签用在版本记录上非常方便。他有下面几个命令。 git tag <tagname> #打标签在当前版本。 也可以指定某个commit id git tag #查看所有标签 git tag -a <tagname> -m "info" #打标签的同时加上说明信息 下图是打标签并查看。 给历史commit打标签 git tag v0.1 ec1ed55 查看标签信息 git show v0.1 删除标签 git tag -d v0.1 删除效果如下所示: 推送标签到远程 git push origin v1.0 git push origin --tags #推送所有标签到远程 删除远程标签 git tag -d v0.5 #首先删除本地标签 git push origin :refs/tags/v0.5 #删除远程标签
下面是Git Flow的流程图 ? Git Flow常用的分支 Production 分支 也就是我们经常使用的Master分支,这个分支最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直接修改 RELEASE 发布Release: git flow release finish RELEASE 别忘了git push –tags 开始一个Hotfix: git flow hotfix start VERSION [BASENAME] 发布一个Hotfix: git flow hotfix finish VERSION ? SourceTree 当你用Git-flow初始化后,基本上你只需要点击git flow菜单选择start feature, release或者hotfix, 做完后再次选择git flow菜单,点击Done
我们可以针对某一次的提交打上一个标签,有点类似于给某次提交取个别名,比如1.0版本发布时打个标签叫v1.0,2.0版本发布时打个标签叫v2.0,因为每次版本提交的结果都是一连串的哈希码,不容易记忆,打上 首先我们可以通过如下命令来查看当前仓库中的所有标签: $ git tag 打标签的方式很简单,直接通过git tag <tagname>来完成即可,如下命令: $ git tag v1 表示创建了一个名为 我们可以通过$ git tag -d <tagname>命令删除一个标签: $ git tag -d v1 如下图: ? 如果我想给历史上的某次commit打一个标签呢? 一个项目从开发到发布,再到后期的更新迭代,一定会存在若干的稳定版本与开发版本(存在不稳定因素)。作为项目发起者、持有者,有权定义他(们)所认可的稳定版本,这个稳定版本,将不允许其他开发者进行改动。 标签推送到远程仓库 git push命令并不会把tag提交到远程仓库中去,需要我们手动提交,如下: $ git push origin v0.0 表示将v0.0标签提交到远程仓库,也可以通过$ git
不论webstorm还是phpstorm,默认在mac下安装git-flow插件之后,IED识别不到git-flow,会提示git-flow未安装,此时需要建一个软链来解决。 通过which,找到git和git-flow的安装路径 $ which git /usr/bin/git $ which git-flow /usr/local/bin/git-flow 然后把git-flow 软链一份到git的目录就可以了 $ sudo ln -s /usr/local/bin/git-flow /usr/bin/git-flow 附:Mac通过brew安装git-flow 一句命令解决问题 brew install git-flow
两个环境都是采用k8s集群搭建而成 2.2 git分支 master:生产环境对应分支代码、分支会永久存在。 dev:开发环境对应分支代码、分支会永久存在。 三、Git flow工作流程 在开始解决上述问题之前,我们先来了解一下Git flow工作流程,如下图所示: 官方博客:https://nvie.com/posts/a-successful-git-branching-model 四、版本发布流程 正如齐白石老先生说的:“学我者生,像我者死”一样,Git flow分支模型确实非常优秀,可以解决很多问题,但是我们需要跟我们的实际项目进行适配。 所以我们需要对这个Git flow分支模型进行改造。 六、总结 上面讲述了如何利用Git flow适配我们自己项目发布流程。但是当前版本发布流程还是会存在某些特殊问题。
1.查询本地所有tag $ git tag v1.0 v2.0 $ git tag -l "v1.8.5*" # 匹配某标签时要带 -l v1.8.5 v1.8.5-rc0 v1.8.5-rc1 v1.8.5 -rc2 v1.8.5-rc3 v1.8.5.1 v1.8.5.2 v1.8.5.3 v1.8.5.4 v1.8.5.5 2.本地带注释的tag $ git tag -a v1.0 -m "打标签" 3 > Date: Mon Dec 20 11:10:30 2021 +0800 打标签 commit 7b7882534bcfe7a9b4ee1135014813e90e301d18 (HEAD #查看所有版本id 7b7882534bcfe7a9b4ee1135014813e90e301d18 (HEAD -> master, origin/master, origin/HEAD) 测试打标签 -m "打标签" #带注释 6.tag推送到远程分支 $ git push origin v1.0 7.删除本地tag $ git tag -d v1.0 8.删除远程分支tag $ git push
在这章节中我们将一起学习一个当前非常流行的工作流程 git-flow。 什么是 git-flow? 一旦安装安装 git-flow,你将会拥有一些扩展命令。 在项目中设置 git-flow 当你想把你的项目 “切换” 到 git-flow 上后,Git 还是可以像往常一样工作的。 稍后和所有积攒在 “develop” 分支中的其它功能一起进行发布。 之后,git-flow 也会进行清理操作。它会删除这个当下已经完成的功能分支,并且换到 “develop” 分支。 让我们来看看如何利用 git-flow 创建和发布 release。 完成 Hotfixes 在把我们的修复提交到 hotfix 分支之后,就该去完成它了: $ git flow hotfix finish missing-link 这个过程非常类似于发布一个 release
1、列出现有的标签 git tag 2、对包含特定信息标签进行显示出来 # git tag -l 'v1.4.2. *' v1.4.2.1 v1.4.2.2 v1.4.2.3 v1.4.2.4 这里把包含v1.4.2的标签信息全打印出来 3、创建一个含附注的标签 git tag -a v1.4 -m "this is a test" -m 指定对应的标签说明 4、创建轻量级标签 git tag v0.0.0 5、查看指定的标签信息 git show v0.0.0 6、后期加注标签 比说我们在前面提交时未创建标签,现在想回过头来加注标签,很方便,只不过需要在创建标签的时候,后面跟上提交对象的校验和 #查看校验和 tag -a v1.0.0.0 9127be 7、分享标签 我们通常执行git push 命令时,是不会将标签同步到远程仓库的,解决办法为: git push origin
git tag
# git tag -l 'v1.4.2. *'
git tag -a v1.4 -m "this is a test"
git tag v0.0.0
git show v0.0.0
git push origin
我调研了 git flow / github flow / gitlab flow,每种工作流都有各种优势。 如果你使用默认的初始化参数,那么格式将是下面的样子: E:\Documents\Repositories\solutions\git-flow (master -> origin) $ git flow 但往往有些场景因为手动操作开启新的 hotfix 分支后很容易忘记将修改合并到发布分支和开发分支,版本发布比较多以后,会发现有一些 hotfix 分支在项目总仓库中,再加上命名的不规范,最终会不确定这些分支到底有没有合并到主干和开发分支 your feature" git flow feature finish // 开始和完成一个版本的发布 git flow release start "version of your release " git flow release finish // 开始和完成一个 hotfix git flow hotfix start "version of your hotfix" git flow
三、查询标签 git tag 四、查询标签信息 git show v1.0 五、创建标签并指定说明文字 git tag -a v0.9 -m "text" faafce2 六、删除标签 git tag 二、为某个提交设置标签 git tag v1.0 2321849 ---- 执行 git tag v1.0 2321849 命令 , 为 哈希码为 2321849 的提交 , 设置标签 " v1.0 " , 其中 2321849 哈希码对应的提交为 : 2321849 (HEAD -> master) dev1 三、查询标签 git tag ---- 执行 git tag 命令 , 查询当前设置过的标签 tag 命令 , 查询当前设置过的标签 ; 六、删除标签 git tag -d v1.0 ---- 执行 git tag -d v1.0 命令 , 删除 v1.0 标签 ; 再次执行 git tag 查询当前标签 , 发现 v1.0 标签已经被删除 ; 执行过程 : D:\Git\git-learning-course>git tag -d v1.0 Deleted tag 'v1.0' (was
基于SourceTree 下的 Git Flow 模型 1. sourceTree 是一个开源的git 图形管理工具,可下载mac版本,windows版本 2. Git Flow 是一套使用Git进行源代码管理时的一套行为规范和简化部分Git操作的工具。 基本的操作流程 1. 先用sourceTree 创建本地git 项目,xxxProject, 2. ,再次点击 git flow 按钮,会出现 完成新功能,按钮点击,完成新功能,,会把当前新功能合分支 合并到 develop分支,并删除新功能分支 6:使用Git Flow 发布新版本,同样点击 git Flow 按钮,菜单选择 创建新发布版本 , 在发布版本分支上,完成项目发布配置之后,提交,再点击 git flow 按钮,会弹出 完成发布版本 按钮,点击, 确认之后,会发现 发布版本的分支,会合并到 develop分支 和 master 分支,表示生产上发布了一个版本 7:使用git flow 新建补丁,修复bug 比如上面发布的一个版本在生产用的时候,出现了一个 bug,这时,点击 git flow
对git不熟悉的我,经常把git提交搞得很乱,导致在master上有许多无用的commit,最终决定好好地看一下git的使用教程,却不小心发现了还有一个git-flow的工具可以帮助我管理好git项目的代码 git-flow在ubuntu上使用比较简单。首先安装,可以通过apt-get来获取。 我在我原来的git项目上执行以下命令来进行初始化: git flow init 它会创建或转换一个新的版本分支结构,当然在初始化的过程中,会问到以下这边问题,我都选择了默认: Which branch git flow hotfix start 3 它会创建一个基于master的分支hotfix/3,并切换到当前分支。 当修复完成后,可以执行以下命令: git flow notfix finish 3 增加一个功能特性 git flow feature start demo 它会创建一个分支feature/demo,并切换到该分支
CODING 代码托管是为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审,分支管理,超大仓库。
扫码关注腾讯云开发者
领取腾讯云代金券