git开发流程

这篇具有很好参考价值的文章主要介绍了git开发流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在开发中,正确使用 git 能让开发事半功倍,下面我简单介绍一下在开发中的一些常见 git 操作。

分支功能介绍
我们在项目开发中,会用到如下几个不同分支。

分支 介绍
dev 内网编译分支
test test 环境编译分支
release 待发布分支,也可以看做是外网分支
feature 需求功能分支
bugfix bug 分支,用于修复外网 bug

不同的分支在不同的应用场景中扮演着重要的角色,所以,选择正确的分支进行开发至关重要。介绍分支显然不能脱离它的应用场景,那么,先了解一下我们开发时常见的场景有哪些。

开发中,常见的有主要有如下几个场景

内网开发新功能
修复未发布到外网的 bug
修复已发布到外网的 bug

内网开发新功能

1. 在功能分支上开发新功能

按照我们现在的开发流程,新功能肯定会对应一个禅道号,我们依据于禅道上的需求进行开发。

假如,我们有一个需求号为1650,这时候需要创建一个功能分支feature/#1650。问题来了,该从哪一个分支去创建?

由于新功能开发不能夹带没有升级到外网的代码,我们需要保证开发的分支是干净的。所谓干净的分支,就是说分支的代码要和外网的代码保持一致,而release分支正好对应的是外网的代码,所以,开发新需求,我们需要从release分支去创建功能分支。

为了保证 release 分支最新的 commit 记录,先 fetch 一下。

git fetch origin release

然后,以远程release为基准创建功能分支。

git checkout -b feature/#1650 origin/release

在开发中,我们可以在feature/#1650分支上提交很多个 commit 记录,到达一个开发阶段之后,比如需要给产品测试,我们需要把代码提交到内网 dev 环境,由于dev分支对应的是 dev 环境,所以,我们需要把功能分支上的提交合并到dev分支上。

首先切换到dev分支。

git checkout dev

我们选择rebase方式合并代码,为了不破坏原始的提交记录,让记录保持线性。

git pull origin dev --rebase

之后执行合并操作。

git merge "feature/#1650" --no-ff -m "merge: 合并#1650需求 (story#1650)"

如果出现冲突,解决冲突,解决完冲突继续合并。

git merge --continue

合并结束后,将最终代码push到远程dev分支。

git push origin dev

你可以把feature/#1650分支推送到远端,也可以选择不推送。如果推送的话,要记得在release发布之后将功能分支及时删除,防止无用远程分支过多。

2. 在内网 dev 分支上开发新功能

请记住,避免在 dev 分支直接开发新功能。如果你忘记创建功能分支,不小心在 dev 分支上提交了新需求的代码,可以按照如下步骤去操作。

第一种情况,还没有 commit

可以先执行git stash,将代码先暂存起来,然后切换到功能分支,执行git stash pop将暂存的代码释放出来。然后在功能分支开发即可。

第二种情况,已经在 dev 分支上 commit 过

首先,把 dev 分支上该需求的提交过滤出来,复制所有关于该需求提交的 hash 值,注意多个哈希值是按时间的正序排列,即最早提交的 hash 在前,后提交的 hash 在后。如果你用的是 Webstorm,它会自动帮你排好哈希顺序。

紧接着,切换到功能分支,执行 cherry-pick,将刚才选中的提交 hash 全部 cherry-pick 到功能分支上。

git checkout feature/xxx
git cherry-pick -x hash1 hash2 ...

如果出现冲突,请解决冲突,解决完执行 git cherry-pick --continue 继续,直到结束。

之后,开发在功能分支上即可。剩下的操作,和上述“在功能分支上开发新功能”一致,不再赘述。

修复未发布到外网的 bug

每一个 bug 肯定对应一个禅道 bug 编号,而禅道上的 bug 肯定是经过产品或测试的同事测出来提的 bug,所以代码肯定是已经发布到 test 环境中了。那么,我们修改 bug,可以在本地的test分支中直接修改,改完直接push到远程的test分支。

首先,切换到test分支。

git checkout test

然后在test上修改 bug。

git add .
git commit -m "fix: xxxxx (bug#123)"
...
git commit -m "fix: xxxx2 (bug#123)"

改完之后推送到test分支。

git pull origin test --rebase
git push origin test

由于 test 环境的编译时定时的,有可能提交之后不能立即看到效果,如果需要线上看到效果,可以将test的改动合并到dev分支,合并方式和上面合并功能分支的方式类似,不再赘述。

修复已发布到外网的 bug

外网出 bug 肯定要在外网的代码基础之上去修改。所以需要从release分支去创建bugfix分支,这里创建分支需要携带 bug 号。

假如禅道的 bug 号是123,首先从release创建bugfix/#123分支。

git checkout -b bugfix/#123 origin/release

然后在bugfix/#123修复 bug,之后提交到远程的bugfix分支,如果没有则创建。

如果想在 dev 环境立即看到修复效果,就合并到 dev 环境中,操作方式上面已经介绍过了,不在赘述。

等到 bug 全部修复结束时,准备发布外网环境,我们需要将远程的bugfix分支合并到release分支并删除bugfix分支。并且把合并过后的release分支再merge到dev和test分支,让 bug 修复在 dev 和 test 环境都生效。

rebase 还是 merge

虽然,rebase和merge都可以合并代码,但是,也不能乱用。

什么时候该用rebase,什么时候该用merge?

牢记一个原则,相同基准的分支,用rebase操作,已经提交到远端的 commit,不要进行rebase。

比如,我从远程的dev分支合并代码到我本地的dev分支,可以使用rebase。

另一种情况,比如我本地有一个分支feature/#xxx是从远程的release分支创建的,我在feature/#xxx新增了一些提交,在 push 到release之前,我们可以去rebase release分支。文章来源地址https://www.toymoban.com/news/detail-492279.html

到了这里,关于git开发流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 Java 8 中的 Stream ,可以让你写代码事半功倍

    Java 8 中一个主要的新功能是引入了流(Stream)功能。在 java.util.stream 中包含用于处理元素序列的类。其中,最重要的类是 StreamT 。下面我们就来看看如何使用现有的数据源创建流。 可以使用 stream() 和 of() 方法从不同的数据源(例如:集合、数组)创建流: Collection 接口新增

    2024年02月04日
    浏览(44)
  • 企业资产管理,这么用事半功倍!

    在当今竞争激烈的商业环境中,有效地管理和追踪资产,对于实现高效运营、优化资源利用和降低成本至关重要。 资产管理系统的引入,不仅可以提高资产管理的透明度和准确性,还可以加强对资产生命周期的控制,从而使企业在日常经营和战略决策中更具竞争优势。 河南

    2024年02月16日
    浏览(45)
  • 什么?这样自学C语言能事半功倍?

    你醒啦?关于你转生成为异世界程序员这件事知道了吗?什么?你连C语言都不会?好吧,接下来就给你讲讲该怎样学习C语言吧。 君兮_的个人主页 勤时当勉励 岁月不待人 C/C++ 游戏开发 在咱们计算机行业有句话叫:C 生万物 C乃编程之本,无论以后你想要从事什么和计算机有

    2024年02月09日
    浏览(42)
  • 高效学习方法和工具推荐,让你事半功倍!

    本文介绍了五种高效学习方法,包括制定详细的学习计划、集中注意力、不断复习、采用多种学习方式和利用小休息。同时,还推荐了五个高效学习工具和平台,包括Coursera、Duolingo、Quizlet、Khan Academy和Anki,让你在学习中事半功倍,轻松掌握知识! 制定详细的学习计划 制定

    2024年02月02日
    浏览(48)
  • Nginx静态资源传输优化,文件高效传输,事半功倍

    Nginx可以作为静态资源服务器,比如我们访问 192.168.110.97:80 ,熟悉的nginx欢迎界面,这其实也是nginx为我们提供的一个静态文件: index.html 。 既然是静态资源,那我们能否优化一下传输效率呢? 1)sendfile文件高效传输模式。如何开启?它的原理到底是什么呢? 2)数据量大,

    2024年02月03日
    浏览(48)
  • Excel数据分析:5招矩阵技巧,让你事半功倍

    作为一位数据分析师,我深感矩阵工具的便利与乐趣。在此,我愿分享一些操作之妙,助您在数据分析道路上如履平地。 1.矩阵的创建与填充 在Excel环境下,借助矩阵函数,用户能便捷地构建和填写矩阵。只要选择好所需的范围,导入矩阵公式,接着按下Ctrl+Shift+Enter,便可轻

    2024年04月26日
    浏览(45)
  • 高效拓客必备工具:采集工具助力,让你事半功倍

    在当今竞争激烈的市场环境下,企业想要获得更多的市场份额,拓展更多的客户,必须要进行拓客工作。而在拓客过程中,采集工具是必不可少的工具之一。采集工具可以帮助企业快速获取目标客户的信息,并进行有效的沟通和跟进,提高拓客效率,让你事半功倍。 采集工具

    2023年04月10日
    浏览(52)
  • 值得收藏的几个postman特色功能帮你事半功倍!

    为什么选择postman? 目前市面上提供了以下几种接口测试工具: Apifox apifox的官方的定位是:Apifox = Postman + Swagger + Mock + JMeter 有桌面版和web版本: 优点:功能强大,提供了很多机构的openapi,官方客服支持好,有问题会直接一对一 教你。 缺点:比较而言,功能的强大牺牲了一

    2023年04月09日
    浏览(36)
  • 快速操控鼠标行为!Vue鼠标按键修饰符让你事半功倍

        🎬 江城开朗的豌豆 :个人主页  🔥 个人专栏  :《 VUE 》 《 javaScript 》  📝  个人网站  :《 江城开朗的豌豆🫛 》  ⛺️ 生活的理想,就是为了理想的生活 !         欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造

    2024年02月05日
    浏览(46)
  • 概率大揭秘:深度复习概率论,事半功倍的学霸秘籍!

     1、样本空间、样本点、随机事件、必然事件、不可 能事件、基本事件和复合事件的概念;  2、事件的包含与相等:若事件A包含事件B,则B的发生必然导致A的发生。进而有P(AB)=P(B),P(AUB)=P(A)     3、和事件:A、B至少有一个发生的事件,即AUB     4、积事件:A、B同时发生的

    2024年01月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包