首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我是如何做到的:不切换 Git 分支,同时在多个分支上工作的?

正在开发某个 feature,老板突然跳出来说让你做生产上的 hotfix 更是家常便饭,面对这种情况,使用 Git 的我们通常有两种解决方案: 草草提交未完成的 feature,然后切换分支到 hotfix...: 用简单的话来解释 git-worktree 的作用就是: 仅需维护一个 repo,又可以同时在多个 branch 上工作,互不影响 上面红色框线命令有很多,我们常用的其实只有下面这四个:  git...,需要和大家普及两个你可能忽视的 Git 知识点: 默认情况下, git init 或 git clone 初始化的 repo,只有一个 worktree,叫做 main worktree 在某一个目录下使用...接下来,你就可以在 feature2 分支上做一切你想做的内容了(add/commit/pull/push),和 main worktree 互不干扰 一般情况下,项目组都有一定的分支命名规范,比如 feature...,hotfix 目录下存放所有 hotfix 的 worktree,这样整个磁盘目录结构不至于因为创建多个 worktree 而变得混乱 在磁盘管理上我有些强迫症,理想情况下,某个 repo 的 worktree

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么我建议在复杂但是性能关键的表上所有查询都加上 force index

    对于 MySQL 慢 SQL 的分析 在之前的文章,我提到过 SQL 调优一般通过下面三个工具: EXPLAIN:这个是比较浅显的分析,并不会真正执行 SQL,分析出来的可能不够准确详细。...但是在进一步定位之前,我想先说一下 MySQL 的 InnoDB 查询优化器数据配置。...这也引出了一个新的可能大家也会遇到的问题,我在原有索引的基础上,加了一个复合索引(举个例子就是原来只有 idx_user_id,后来加了 idx_user_status_pay),那么原来的只按照 user_id...顺便说一下:MySQL 表数据量不能很大,需要做好水平拆分,同时字段不能太多,所以需要做好垂直拆分。...并且索引不能随便加,想加多少加多少,也有以上说的这两个原因,这样会加剧统计数据的不准确性,导致用错索引。 手动 Analyze Table,会在表上加读锁,会阻塞表上的更新以及事务。

    1.4K20

    听完李厂长和雷布斯在乌镇讲AI段子,我突然理解为什么这两个男人选择在一起了

    前几天,小米在北京开了一场发布会,可爱又Q萌的雷军雷布斯也拉出一串数字,摆事实讲道理地说明了小米在IOT智能互联上取得了多么耀眼的成绩:8500万联网设备,日活设备超1000万台,合作伙伴400家,稳居全球最大的智能硬件...在听完两人的演讲后,营长突然明白,这两个大男人为什么最终选择在一起了:两家的战略一个做的是猪肚,一个做的是凤头。...这两个男人,在人工智能的大潮中,方向完全不同,一个的核心在C端,一个的核心在B端,说白了,一个的核心在于渠道,一个的核心在于技术。按照性格互补的原则,两个人,是适合在一起的。...大家好,昨天下午我们参加了一个会议(营长:明明是约饭,有图有真相,吶) 极客公园张鹏就说现在很多的互联网创业者很焦虑,也很失落,我问为什么?...大家可能看上去觉得这些AI音箱差不多,我们在七月底、八月初发布的时候,也有很大压力,不知道发布之后消费者会不会不认可? 但事实上,我们的小爱同学在美国广受欢迎。

    88760

    关于“代码分层”的思考

    分层非常清晰,但是真正写起来会有很多“操作粒度”层面的问题(设计者没有提供接口的参数,需要我自己去思考)。 比如: 修改时的幂等校验,放在Account里面还是两个Table对象里面?为什么?...在接口上作为参数传递进来(filter类似一个Map,相当于mysql where条件的实例) 不同的数据状态,在Account就进行(统一)分支还是下沉到两个Table中?...…… 上面的问题似乎跟分层无关,但是我觉得这是“概念分层”无法掌控的细粒度分层。...如果把幂等校验放在Account里面,需要同时对AccountTable和DetailTable进行幂等校验,这时候需要操作两次数据库。将“意外拦截在了最外层”似乎很美好。...我一开始是在Account中进行统一分层,但是统一分层会使得局部代码快速膨胀,分支过多难以理解,结构不清晰,最终选择各个方法自行处理状态分支。

    38020

    谈谈 Git 分支管理的本质

    粗略浏览了一下网上存在的 Git 相关的中文文章,大多数是介绍 Git 的一些命令怎么使用,或者是介绍 Git 分支管理策略里有哪些类型的分支,似乎没有一篇文章是在解释为什么要这么做。...我们继续在 dev 分支上继续开发,有了 A000002、A000003 两个新的提交记录,在这个时候线上系统发现了一个 BUG ,我们要如何修复?...为什么要合并 hotfix 分支两次参看图1,我们可以知道,分支一旦被切出来以后,两个分支未来的发展是相互独立的,除非是将两个分支合并。...当前分支:在控制台输入 git merge 命令时的分支,GitLab 上的 target branch合并进来的分支:git merge 命令后的分支,GitLab 上的 source branch结语本文是某一次自己突然想到为什么要有...master 分支来对应生产环境,因为我们项目会在 master 分支上打 tag,我就想,在 dev 上打也是可以的,为什么要这样做,于是有了写下这篇文章的念头。

    30420

    Python 为什么不支持 switch 语句?

    主要是因为 switch 在其它语言中太常见了,而 Python 却不支持,这样的独特性本身就值得关注,而回答这个问题,也能更加看清 Python 在程序设计上的理念,了解 Python 在语法设计中的决策过程...我在 PyCon 2007 的主题演讲中做了一个快速的民意调查,结果表明这个提案没有得到广泛的支持。因此,我拒绝了它。...它首先认可了 PEP-275 中的两个基础设定,例如,实现“隐式的 break”,不让 case 分支出现 fall-through 这种转移控制权的情况(其它语言似乎都要求显式地写 break);else...最后,他在 PyCon 上做了一个小范围调查,借此“名正言顺”地拒绝了自己发起的 PEP,试图堵住众人的悠悠之口…… 4、未来会有 switch 语句么?...或者类似的多分支选择结构? 为什么要有此一问呢?

    98840

    Python 为什么不支持 switch 语句?

    主要是因为 switch 在其它语言中太常见了,而 Python 却不支持,这样的独特性本身就值得关注,而回答这个问题,也能更加看清 Python 在程序设计上的理念,了解 Python 在语法设计中的决策过程...我在 PyCon 2007 的主题演讲中做了一个快速的民意调查,结果表明这个提案没有得到广泛的支持。因此,我拒绝了它。...它首先认可了 PEP-275 中的两个基础设定,例如,实现“隐式的 break”,不让 case 分支出现 fall-through 这种转移控制权的情况(其它语言似乎都要求显式地写 break);else...最后,他在 PyCon 上做了一个小范围调查,借此“名正言顺”地拒绝了自己发起的 PEP,试图堵住众人的悠悠之口…… 4、未来会有 switch 语句么?...或者类似的多分支选择结构? 为什么要有此一问呢?

    1.2K41

    谈谈 Git 分支管理的本质

    粗略浏览了一下网上存在的 Git 相关的中文文章,大多数是介绍 Git 的一些命令怎么使用,或者是介绍 Git 分支管理策略里有哪些类型的分支,似乎没有一篇文章是在解释为什么要这么做。...我们继续在 dev 分支上继续开发,有了 A000002、A000003 两个新的提交记录,在这个时候线上系统发现了一个 BUG ,我们要如何修复?...为什么要合并 hotfix 分支两次 参看图1,我们可以知道,分支一旦被切出来以后,两个分支未来的发展是相互独立的,除非是将两个分支合并。...当前分支:在控制台输入 git merge 命令时的分支,GitLab 上的 target branch 合并进来的分支:git merge 命令后的分支,GitLab 上的 source branch...结语 本文是某一次自己突然想到为什么要有 master 分支来对应生产环境,因为我们项目会在 master 分支上打 tag,我就想,在 dev 上打也是可以的,为什么要这样做,于是有了写下这篇文章的念头

    58940

    Python 为什么不支持 switch 语句?

    主要是因为 switch 在其它语言中太常见了,而 Python 却不支持,这样的独特性本身就值得关注,而回答这个问题,也能更加看清 Python 在程序设计上的理念,了解 Python 在语法设计中的决策过程...我在 PyCon 2007 的主题演讲中做了一个快速的民意调查,结果表明这个提案没有得到广泛的支持。因此,我拒绝了它。...它首先认可了 PEP-275 中的两个基础设定,例如,实现“隐式的 break”,不让 case 分支出现 fall-through 这种转移控制权的情况(其它语言似乎都要求显式地写 break);else...或者类似的多分支选择结构? 为什么要有此一问呢?...switch 话题的讨论似乎要终止了,但是另一个更大的话题正在进行中! ---- 我是kuls 欢迎加我微信交流学习阅读更多精彩文章,可以关注我!

    78510

    “不可不学是编程,不可不用是git” | github篇

    然后推送到github上,使用这条命令,可以在github新建一个分支。 ▼ 使用分支 ▼ 在本地中创建新的分支 ? 再来看看github上的情况吧 ? ?...到了这步,我们来说说在github上创建分支和合并分支吧。 在这里可以选择,输入一个名字,如果在现有的分支中匹配不懂,那么会提示您创建一个新的分支,前提是,自己的账号登录哈。 ?...如果没有问题,那么可以直接合并,注意,你现在所在的分支是在filelist上,之后,会合并到主分支上,等合并后我们来查看我们的主分支是不是包含了filelist上分支的内容。 ? 最下面有修改信息。...用图说话似乎是我的习惯…… 进入设置(Setting),左边,选择合作者(Collaborators) ▼ 邀请合作者 ▼ 像这样 ? 接下来,等待另一边的回复吧。...答:接下来的两篇是这样,打算写一篇为什么要学编程的文章。接下来是使用markdown的文章。 5. 问:我看你并不是纯粹的技术号? 答:是的。以技术为主,同时会发些别的,比如认知类,写作类,诗词类。

    85820

    Git那些事系列:从业务场景到高级技巧的完整指南(一)

    : 你想了想似乎很有道理,但似乎又没有道理,这里到底应该选择哪一种其实也是一个有意思的点。...,把两个分支的指针指向一起,同时将历史修改按时间顺序进行排布 git rebase就是分支变基,把合并进来的修改记录放在当前分支修改的前面(时间上的前面) git rebase 因为没有两个交叉修改记录看来很清爽...命令恢复回来,然后新拉个分支的方式合并回feature/product_list的方式解决 在feature/user_manager分支上通过checkout commmit_id在本地会滚到那在用户配置管理子功能开发完毕的节点...取巧合并是预设前提的,如果对src/product文件夹的修改并不独立,比如,在feature/user_manager分支中某次提交中同时修改src/product和src/config两个文件夹怎么办...分支”看,并强调不要删除该分支 如果你说,我不想这个方案,我就是想在当前分支看到所有修改,并优雅的合并某个文件夹的内容 这个时候,绝大部分项目经验丰富的工程师会对你的执着的精神表示认同,并不想再理你了

    26340

    腾讯程序员的Git大法:我是这样搞定分支的

    这时,负能量爆棚的你先后尝试了以下几种方案: 方案一:讲道理 我:“跟项目组表示这两个子需求都在一个分支上,无法分开,且代码有关联,所以得等用户权限管理子需求开发完毕后才能提测。”...方案三:心再次一横 我:“决定下次再也不把两个子需求放一个分支了,再信XXX的话我就是狗,并表示一定要解决这个问题,并捍卫工程师“一定能解决工程问题”的尊严。”.../post/7034793065340796942 主要的结论是: git merge 就是真实意义上的合并,把两个分支的指针指向一起,同时将历史修改按时间顺序进行排布。...git merge 就是真实意义上的合并,把两个分支的指针指向一起,同时将历史修改按时间顺序进行排布。 git rebase 就是分支变基,把合并进来的修改记录放在当前分支修改的前面。...在 feature/user_manager 分支上通过 checkout commmit_id 在本地会滚到那在用户配置管理子功能开发完毕的节点。

    30451

    Git那些事系列:从业务场景到高级技巧的完整指南(一)

    图片 方案四:心再次一横,决定下次再也不把两个子需求放一个分支了,再信XXX的话我就是狗,并表示一定要解决这个问题,并捍卫工程师“一定能解决工程问题”的尊严 图片 然后,你又重新看了下feature...,把两个分支的指针指向一起,同时将历史修改按时间顺序进行排布 git rebase就是分支变基,把合并进来的修改记录放在当前分支修改的前面(时间上的前面) git rebase 因为没有两个交叉修改记录看来很清爽...命令恢复回来,然后新拉个分支的方式合并回feature/product_list的方式解决 在feature/user_manager分支上通过checkout commmit_id在本地会滚到那在用户配置管理子功能开发完毕的节点...当然,取巧合并是预设前提的,如果对src/product文件夹的修改并不独立,比如,在feature/user_manager分支中某次提交中同时修改src/product和src/config两个文件夹怎么办...分支”看,并强调不要删除该分支 如果你说,我不想这个方案,我就是想在当前分支看到所有修改,并优雅的合并某个文件夹的内容 这个时候,绝大部分项目经验丰富的工程师会对你的执着的精神表示认同,并不想再理你了

    923182

    基于流水线的CPU的设计「建议收藏」

    这显示是不行的,对于追求效率的CPU是不能容忍的,于是在基于工厂流水线的启发:提出了基于流水线形式工作的CPU。大概就是这个样子。 这是五条指令在一起工作,上一条使用完资源以后,下一条紧接着继续。...这两种操作在某种意义下是相反的,你不可能又读又写吧,这显然是不合理的。为了解决这个问题,人们发明了缓存技术。使用两个一级缓存,一个读一个写。即保证了效率,又解决了冲突。...(2)人们仔细分析发现,问题的根本原因是在ALU这个位置再整个执行程序流程的后边,如果把它提前,问题不久容易了一些嘛,所以人们提出再Reg中加一个分支比较器,然后空出一个单个的时间段,这样似乎又好了很多...然后发现可能是自己的思想有问题:为什么分支会产生这样的问题,因为分支只是做了干了一个活。我现在重新定义分支,我让你依次就是执行两条指令,什么意思呢?...但是这里面有很多问题:什么叫做与分支无关的指令,你怎么找到这样的指令,这样的指令一定存在吗?对于前两个问题,汇编器会帮我们做,至于最后一个问题,答案是这样的指令还就真的不一定存在。

    47800

    使用 Git Extensions 简单入门 Git

    使用 Git Extensions 简单入门 Git —— 独立观察员 2015.11.25 前言 关于这个主题,之前我录了段视频教程,在本地看清晰度还可以,但传到优酷上就很不清晰了,即使是后来重制后还是一样不清晰...正文 说到 Git 呢,相信从事软件开发的都不陌生,是用于版本控制的,在全球范围内被广泛使用,相比于另一版本控制技术 ——SVN,似乎更受追捧一些,全球最大的代码托管平台 GitHub 使用的就是 Git...Git 由于有本地仓库,工作目录一般就在本地仓库那里,从文件角度上看不出两个分支的文件分别在哪里,似乎工作目录下同时只存在一个分支。而 SVN 则能够清晰地看到哪些是主干的文件,哪些是分支的文件。...后来(录完视频教程之后)我才发现原来其代码维护在 sourceforge 网站(版本为 2.48.05)。...): 使用 Checkout branch… 功能可签出分支,这里我们将远程的 dlgcy 分支也迁出到本地: 这样本地就和远程一样也有两个分支了: 使用命令行也可看出: 使用 "GitExt

    1.3K30

    【Jenkins系列】自动化构建

    ‍目录 一、为什么需要自动化构建 二、Jenkins如何实现自动化构建 三、总结 四、历史文章指路 ‍一、为什么需要自动化构建 可以验证迭代的新版本主流程是否正常。...自动化构建的流程:将代码合并到自动化测试分支上,在开发发送请求合并事件时即触发Jenkins自动构建,完成打包、部署、跑自动化测试用例,构建完成之后发送测试报告。...3、根据branch分支触发打包条件 下面我们设置判断过滤只有向release分支push代码时才会触发构建打包。 点开高级,填写根据正则过滤branch:.*xxx (xxx表示需匹配的关键字)。...5、验证 至此相关配置已经完成,接下来就需要验证了,可以试着在release分支上修改代码并push,观察Jenkins是否自动构建即可。 三、总结 有需要的小伙伴赶紧去试试吧。...在测试领域似乎挺多人一直在强调自动化,但是我觉得先考虑投入和产出比,什么地方需要自动化什么地方使用自动化是反向增加成本的。这一块我后面想单独来聊一次,关于我理解的自动化。 下期再见~

    64630
    领券