Git撤销对远程仓库的push&commit提交

撤销push 1. 执行  git log查看日志,获取需要回退的版本号 2. 执行 git reset –-soft <版本号> ,如 git reset --soft 4f5e9a90edeadcc45d85f43bd861a837fa7ce4c7 ,重置至指定版本的提交,达到撤销提交的目的 然后执行 git log 查看 此时,已重置至指定版本的提交,log中已经没有了需要撤销的提交  git reset 命令分为两种: git reset –-soft 与 git reset –-hard ,区别是: 前者表示只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交。后者直接回改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码。 3. 执行 git push origin 分支名 –-force ,强制提交当前版本号。 至此,撤销push提交完成。 撤销commit 1. 执行 git log 查看需要撤销的commit的前面一个提交版本的id; 2. 执行 git reset --hard commit_id ,该commit_id为需要撤销的commit的提交的前面一个提交的版本,即需要恢复到的提交的id,重置至指定版本的提交,达到撤销提交的目的 3. 执行 git log 查看,commit提交已撤销   from:https://www.cnblogs.com/chaoxiZ/p/9714085.html

龙生   13 Aug 2021
View Details

MySQL事务与MVCC如何实现的隔离级别

前言 其实数据库章节基本上的知识点我都写过一遍了,包括这篇事务和MVCC的,但是国庆期间我翻阅资料的时候我发现之前写的还差点意思,例子举得也差点意思,那我就根据我自己最新的理解,加上之前的总结相当于重写了,希望你也有新的收获。   数据库事务介绍   事务的四大特性(ACID) 原子性(atomicity): 事务的最小工作单元,要么全成功,要么全失败。 一致性(consistency): 事务开始和结束后,数据库的完整性不会被破坏。 隔离性(isolation): 不同事务之间互不影响,四种隔离级别为RU(读未提交)、RC(读已提交)、RR(可重复读)、SERIALIZABLE (串行化)。 持久性(durability): 事务提交后,对数据的修改是永久性的,即使系统故障也不会丢失。   事务的隔离级别   读未提交(Read UnCommitted/RU) 又称为脏读,一个事务可以读取到另一个事务未提交的数据。这种隔离级别岁最不安全的一种,因为未提交的事务是存在回滚的情况。   读已提交(Read Committed/RC) 又称为不可重复读,一个事务因为读取到另一个事务已提交的修改数据,导致在当前事务的不同时间读取同一条数据获取的结果不一致。 举个例子,在下面的例子中就会发现SessionA在一个事务期间两次查询的数据不一样。原因就是在于当前隔离级别为 RC,SessionA的事务可以读取到SessionB提交的最新数据。 发生时间 SessionA SessionB 1 begin; 2 select * from user where id=1;(张三) 3 update user set name=’李四' where id=1;(默认隐式提交事务) 4 select * from user where id=1;(李四) 5 update user set name=’王二' where id=1;(默认隐式提交事务) 6 select * from user where id=1;(王二)   可重复读(Repeatable Read/RR) 又称为幻读,一个事物读可以读取到其他事务提交的数据,但是在RR隔离级别下,当前读取此条数据只可读取一次,在当前事务中,不论读取多少次,数据任然是第一次读取的值,不会因为在第一次读取之后,其他事务再修改提交此数据而产生改变。因此也成为幻读,因为读出来的数据并不一定就是最新的数据。 举个例子:在SessionA中第一次读取数据时,后续其他事务修改提交数据,不会再影响到SessionA读取的数据值。此为可重复读。 发生时间 SessionA SessionB 1 begin; 2 select * from user where id=1;(张三) 3 update user set […]

龙生   12 Aug 2021
View Details

微服务规范

微服务规范 前后端分离 数据库避免大量联合查询 服务设计无状态化 服务拆分最多三层,两次调用: 底层:基础服务层 中间层:组合服务层 上层:对外接口层 提供微服务关系图 统一维护微服务相互调用接口 配置统一到apollo 建议设计独立适配微服务以便调用外部服务 接口实现需幂等 定时任务建议实现在统一的单独微服务中,调用其它微服务接口来实现业务。否则和其它微服务实例一起部署的任务须加锁控制,以避免多实例冲突; 持续集成单元测试、接口测试 容器化并自动构建镜像、kubernetes部署 技术选型: 网关:spring cloud gateway 注册中心: consul 调用: feign 负载均衡:ribbon 熔断限流降级:hystrix 监控:cat, hystrix+trubine 容器:docker+kubernetes 微服务实战 环境准备 玩转Docker 服务注册发现Consul起步 实战课程 微服务概览 大话微服务 Provider微服务实战 Consumer微服务实战 Spring Cloud Gateway实战 Spring Cloud Gateway之Filter实战 微服务之网关——spring cloud gateway简单实践 掌医开放平台gateway服务设计及使用手册 契约测试实战 微服务监控-CAT Sleuth+Zipkin调用链监控实战 Hystrix熔断限流降级&Turbine API监控实战 微服务横向热扩展和自定义负载均衡策略 spring cloud gateway聚合swagger K8S创建服务实践小记 Google Jib:Java容器镜像构建新工具 微服务feign调用失败排查问题思路 微服务demo 微服务demo gitlab仓库

龙生   08 Aug 2021
View Details

MySQL自定义函数:身份证号15位转18位

 

龙生   06 Aug 2021
View Details

【mysql】 1292. Truncated incorrect INTEGER value: "

错误分析 一般来讲,找到对应的insert字段,然后看一下是否是由于字段类型不匹配导致的。 例如,表中声明的是bigInt类型,你传值传了个字符串进入。 另外,如果你是通过insert into select的方式,将查询结果导入到新的表中,可能你单独执行select中的内容,是可以查询到相应的结果,但是当你执行insert into语句时,会产生如下错误

在MySQL的论坛上找到一个哥们儿说的内容,也就是说这个1292的错误,有可能并不是错误,而是警告提示。可以通过ignore关键字进行警告屏蔽 所以,我把自己的代码前缀,改成如下格式,即可正常执行导入操作

  ———————————————— 版权声明:本文为CSDN博主「小魏的马仔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xuexiiphone/article/details/103426404

龙生   30 Jul 2021
View Details

MySQL处理JSON数组,数组转字符串

GROUP_CONCAT:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc  ] [separator '分隔符'] ) SUBSTRING_INDEX:substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数 SUBSTRING:SUBSTRING(string,position) JSON_EXTRACT:取json字符串字段下的某个键的值

龙生   29 Jul 2021
View Details

请求资源报错 blocked:mixed-content

原因是https页面去发送http请求报错(浏览器阻止https发送http请求) 解决方法:页面中的http换成https   from:https://www.cnblogs.com/nonsec/p/13177387.html

龙生   16 Jul 2021
View Details

必须知道的SQL语句不走索引时的排查利器

前言: 在索引优化时,经常会看到的一句话:如果索引字段出现隐式字符集转换的话,那么索引将失效,进而转为全表扫描,查询效率将大大降低,要避免出现隐式字符集转换; 在此我想问问同学们: 大家知道为什么隐式字符集转换会导致索引失效吗? 实际场景中有没有遇到过隐式字符集转换导致索引失效的场景,具体排查的过程; 本文主线: 由上面的两个问题牵引出了本文的主线; 简单描述下隐式字符集转换导致索引失效的原因 然后模拟实际场景排查隐式字符集转换导致索引失效的过程 隐式字符集转换导致索引失效的原因 MySQL索引的数据结构是 B+Tree,想要走索引查询必须要满足其 最左前缀原则 ,否则无法通过索引树进行查找,只能进行全表扫描; 例如:下面的这个SQL由于在 索引字段 上使用函数进行运算,导致索引失效

  上面的这个SQL怎么改造才能使索引生效呢?如下所示:

  通过上面的小例子可以知道,如果在索引字段上使用函数运算,则会导致索引失效,而索引字段的 隐式字符集转换 由于MySQL会自动的在索引字段上加上 转换函数 ,进而会导致索引失效; 那接下来我们就通过模拟的实际场景来具体看看是不是由于MySQL自动给加上了转换函数而导致索引失效的; 模拟场景 + 问题排查 由于导致索引失效的原因有很多,如果自己写的SQL怎么看都没问题,但是通过查看执行计划发现就是没有走索引查询,此时就会让很多人陷入困境,这到底是怎么导致的呢? 此时本文重点将要讲述的工具就要闪亮登场啦: explain extended + show warnings ; 使用这个工具可以将执行的SQL语句的一些扩展信息展示出来,这些扩展信息就包括:MySQL优化时可能会添加上字符集转换函数,使得字符集不匹配的SQL可以正确执行下去; 下面就来具体聊聊 explain extended + show warnings 的使用; 模拟隐式字符集转换的场景: 首先创建两个字符集不一样的表:

  然后使用存储过程构造数据:

  注意:在构造数据时,记得将 t_employees 表中的 de_no 字段值构造的 离散些 ,因为如果索引字段值的 区分度很低 的话,那么MyQSL优化器通过采样统计分析时,发现索引查询和全表扫描性能差不多,就会直接进行全表扫描了; 索引失效的查询SQL语句: 将表和数据构造完后,我们使用SQL语句进行查询下,然后再看看其执行计划;

  其执行计划如下: 发现 t_employees 表中的 de_no 字段有索引,但是没有走索引查询,type=ALL 走的全表扫描,但是通过查看SQL语句发现其没有问题呀,表面看上去都是满足走索引查询的条件呀,排查到这发现遇到了困境,苦恼啊! 还好,通过在网络世界上遨游,最终发现了 explain extended + show warnings 利器,利用它快速发现了索引失效的根本原因,然后快速找到了解决方案; 下面就来聊聊这个利器的具体使用,开森! 使用利器快速排查问题: 注意:explain 后面跟的关键字 EXTENDED(扩展信息) 在MySQL5.7及之后的版本中废弃了,但是该语法仍被识别为向后兼容,所以在5.7版本及后续版本中,可以不用在 explain 后面添加 EXTENDED 了; EXTENDED关键字的具体查阅资料:https://dev.mysql.com/doc/refman/5.7/en/explain-extended.html 具体使用方法如下: ①、首先在MySQL的可视化工具中打开一个 命令列介面 :工具 --> 命令列介面 ②、然后输入下面的SQL并按回车:

  ③、然后紧接着输入命令 show warnings; 并回车,会出现如下图所示内容: 通过展示出的执行SQL扩展信息,发现MySQL在字符集不一致时自动添加上字符集转换函数,因为是在 索引字段 de_no 上添加的转换函数,所以就导致了索引失效; 而如果我们没看扩展信息的话,那么可能直到我们查看表结构的时候才会发现是由于字符集不一致导致的,这样就会花费很多的时间; 扩展:隐式类型转换 咱们聊完上面的隐式字符集转换导致索引失效的情况,再来简单聊聊另一种 隐式类型转换 导致索引失效的情况; […]

龙生   09 Jul 2021
View Details

开发人员正从 Java 8 向 Java 11 转移

此前的 Java 社区报告曾指出,Java 8 仍是开发人员使用的主要版本,新版本并未“得宠”。但 Snyk 近期发布的  JVM Ecosystem Report 2021 则指出,开发人员已经逐渐从 Java 8 迁移到了 Java 11。 JVM Ecosystem Report 2021 展示了关于 JVM 生态系统状态的最大年度调查的结果。该调查在 2021 年 2 月和 3 月的六周时间里进行,收集了来自 2000 多名 Java 开发者的回复。 调查结果显示,有 44.1% 的受访者在生产中使用免费的 AdoptOpenJDK 发行版。但 Oracle 仍然是市场上的重要参与者,其 OpenJDK 构建占 28%,商业 Oracle JDK 占 23%。 40% 的调查参与者在生产中使用了一个以上的 Java 版本。升级到 8 版本以上的人也比预料的要多。目前,有 61.5% 的人在生产中使用 Java 11,近 12% 的人使用最新版本,即调查期间的 Java 15。 Snyk 方面在报告中指出,这表明开发人员确实将他们的 Java 版本升级到了 Java 8 以上的版本,有关大多数 Java 开发人员都乐于使用 Java 8 的现象似乎正在慢慢瓦解。不过值得注意的是,仍有一半的 Java 11 用户(目前使用最多的版本)在他们的生产堆栈中使用 Java 8。 从长远来看,虽然 JVM 语言的种类在过去几年中有所增长,但 Java 仍然是最受欢迎的语言。超过 90% 的开发者使用 Java;Kotlin 次之,为 17.7%。 而 JetBrains IntelliJ IDEA […]

龙生   08 Jul 2021
View Details

国外7个最好的域名注册商推荐

在创建网站之前,最重要的事情就像想好一个令人映像深刻的域名。这可能需要花费很多时间去思考,一旦你确定之后,就需要在域名注册商网站注册这个域名,然后才能开始搭建网站。本文推荐了一些国外知名的域名注册商。 注册其实很简单,但是如何选择域名注册商也需要慎重,以下是你需要注意的问题: 选择域名注册商注意事项 价格:比如,购买时很便宜,但在续费时变得很贵。域名后缀的价格也有所不同,有些注册商可能会提供便宜的.com域名,但.org可能会很贵。 额外费用:比如将域转移到另一个注册商之类的任务也可能需要额外的费用。 额外功能:Whois隐私服务可隐藏你的地址、电话号码和电子邮件地址,否则你可能会收到大量垃圾邮件和电话。这项费用每年高达$11.2,但一些注册商免费提供。 额外的托管服务:大多数域名注册商都提供网络托管服务,也就是用来搭建网站的虚拟主机,但你也可以选择其他托管服务。 客户支持:你可能根本不需要任何帮助,但是如果遇到紧急情况,在线客服的服务质量非常重要! 最好的域名注册商推荐 1. Domain.com +优点 购买域名即可免费建立网站 -缺点 最佳价格仅限于较长的订阅时间 Domain.com的主要用户群体时中小企业。它提供了最受欢迎的顶级域名和超过25个国家/地区代码顶级域名,并出售高级域名。 该公司是全球最大的域名注册商之一,拥有近二十年运营历史,在网络托管方面进行了扩展,现在提供了许多产品,包括网站构建器,全面的设计服务和网络托管。 你需要支付6.99美元的价格来保护隐私,这个价格还算合理。此外,你还可以添加电子邮件,网络托管,SSL证书和恶意软件保护,而这些都不是强制性的。你可以使用其基本的网站构建器,该构建器在每个域中都是免费的。这个网站构建器包含了许多有用的功能:大量的模板、SEO工具、PayPal集成。 提供24/7聊天客服、电子邮件和电话支持。Domain.com可能没有提供最便宜的价格,但它在各方面都比较均衡。 2. Bluehost +优点 域名定价性价比高 提供配套的托管服务 良好的客户支持 如果你正在寻找信誉良好,价格合理的域名注册商,那么Bluehost是最好的选择之一。例如,Bluehost每年以12.99美元的价格出售.com和.org域名,同时你可以使用配套的虚拟主机来搭建网站,这节省了你寻找虚拟主机的麻烦。 从Bluehost购买虚拟主机的用户将获得一个免费域名以及网站构建器,该订阅计划的费用通常在每月$2.75左右。Bluehost具有高性能和高质量实时聊天支持,可以帮助你解决任何问题。如果你对服务不满意,则可以享受30天的退款保证。 在注册你喜欢的域名时,Bluehost提供了一个简易的搜索系统,可以清楚地显示你的查询结果。此外,你可以在购买时添加域名隐私和保护,这样你的个人详细信息和个人资料都将通过Whois保持隐藏。 Bluehost还为你提供了自动续订的功能,这避免了你手动续订域名的麻烦,并且确保不会因意外而导致域名被抢注。 3.GoDaddy +优点 提供托管服务 提供在线支持 -缺点 价格昂贵 网络巨头GoDaddy是全球最大的域名注册商,目前为全球1700万客户管理着超过7500万个域名。 该公司以其低价标题价格而闻名,例如,.mobi域名在第一年的价格为7.17美元。.com和.org的起始价格相对较低,起始价格分别为$12.17和$10.17。但是要注意,它并没有看起来那么便宜。 首先GoDaddy的起始价格仅在你提前两年付款后才适用,而第二年的价格明显更高(.com升至$18.17,.uk和.co.uk域名分别为$12,.co,.org和.mobi高得离谱)。 Godaddy现在提供免费的基本Whois隐私,这是以前的可选服务。它以最简单的形式在Godaddy的WHOIS目录中编辑你的姓名、地址、电话号码和电子邮件,并阻止与域名相关的垃圾邮件。 4.Hover +优点 包含免费的Whois隐私 价格公道 -缺点 在线客服不是24/7 Hover是一家受欢迎的域名注册商,该公司还运营着eNom和域名转售平台OpenSRS。 Hover的网站清晰明了。域名定价页面允许你在支付之前检查注册费用,也可以使用搜索框立即找到顶级域名。 默认情况下,结果页面显示你可以注册的每个域及其价格,从而使你可以滚动浏览和阅读大量内容。 价格非常合理,.com域名第一年的价格为12.99美元,.org的价格为13.99美元,.mobi的价格为19.99美元。虽然你可能在其他地方发现较低的价格,但是Hover性价比非常高。 在Whois隐私方面有巨大优势,只要该域名由Hover管理,它就会免费提供。 如果你有任何疑问,可以通过电子邮件和聊天获得支持,尽管不是24/7。工作时间为周一至周五上午8点至晚上8点(美国东部时间),周末中午12点至下午5点。 5. Dynadot +优点 强大的搜索工具 便宜的价格 大量免费附加功能 Dynadot提供免费的附加功能。网站构建器使你可以构建和托管一个简单的响应式网站。如果你想将访问者重定向到其他地方,则可以使用免费的域名转发。DNS支持允许创建50个子域记录,10个电子邮件地址以及MX和TXT记录。 Dynadot的支持并不总是那么优秀,实时聊天有时回复非常慢。但是该网站提供一个公开的论坛,任何人都可以浏览常见问题,并查看Dynadot客户的满意程度。 6. Namecheap   +优点 顾名思义,它很便宜 免费的Whois隐私 实时聊天支持 Namecheap成立于2000年,是一个受欢迎的域名注册商和网络托管商,目前管理着超过500万个域名。 Namecheap的网站允许搜索单个域名或同时搜索50个域名。如果该域名被占用,则可以查看Whois记录或提供从当前用户购买域名的建议。 .com域名的价格通常非常合理,为$7.38(续签价格为$12.98),.org为$8.98(续订价格为$14.98)。有一些特殊的域名,起使价格低至$0.48:.site .website .space .pw .press .host .tech .online .fun以及其他)。 除此之外,你可以免费获得WhoisGuard域名隐私保护。 Namecheap的帐单简单明了,并且在你的Namecheap购物车中清楚地描述了当前价格和续订价格,并且自动续订功能会开启。但是,如果你不了解某些内容,那么只需单击两下就可以找到有用的常见问题页面和实时聊天。 7. Google Domains +优点 出色的客户支持 易于使用 -缺点 价格高于平均水平 寻找域名注册商可能会涉及很多麻烦,选择一些知名度很低的注册商可能会让你遭受损失,那么Google Domains可能是个不错的选择。 Google Domains是Google的轻量级域名注册机构,这是一个简单的提供商,他们注重简单易用。 与其他注册商不同的是,Google […]

龙生   07 Jul 2021
View Details
1 83 84 85 412