Cherry

Git cherry-pick 使用总结

假如想象 提交于 2020-03-17 14:02:02
某厂面试归来,发现自己落伍了!>>> 应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某些commit的更改重新在另一分支上重新提交一遍. 对于我们的应用背景而言,就是把分支dev_01上某几个commit的更改在分支dev_02上再提交一遍。那么上述问题的解决方案如下: 假设我们需要将dev_01上的两个commit 合并到dev_02上,两个commit的commit id 分别如下: 20c2f506d789bb9f041050dc2c1e954fa3fb6910 2633961a16b0dda7b767b9264662223a2874dfa90 那我们可以这样写: git cherry-pick 20c2f506d789bb9f041050dc2c1e954fa3fb6910 2633961a16b0dda7b767b9264662223a2874dfa9 多个commit-hash使用空格分割, commit-hash最好按提交时间先后排列, 即最先提交的commit放在前面. 注意:上面这条cherry-pick命令每拣选一个commit就会提交一次生成一个新的commit id

第一篇 关于Git中cherry-pick的使用总结

偶尔善良 提交于 2020-03-17 12:46:56
某厂面试归来,发现自己落伍了!>>> 需求: 在A和B分支合并到C分支之后,能不能把C分支上同事后来提交的代码合并到B分支,将自己提交的代码合并到A分支。 方法: 1. 单个commit复制,切换到代码分支A,输入命令: git cherry-pick 版本提交哈希值,或是得到所有的哈希值之后,例如k8caws3,f8caws3,m8caws3,n8caws3,k8caws9 2. 多 个不连续的commit复制, 切换到代码分支C,输入命令 git cherry-pick k8caws3 f8caws3 m8caws3 n8caws3 k8caws9,支持多个哈希值一起,多个哈希值使用空格分割即可 3. 多 个连续的commit复制, 切换到代码分支C,输入命令 git cherry-pick commitid1..commitid100,注意中间的两个点,表示把两个commit区间的所有commit都复制过去,注意,不包含第一个commitid , 即 git cherry-pick (commitid1..commitid100] 来源: oschina 链接: https://my.oschina.net/mj20200214/blog/3196605

Java8 Comparator技巧

邮差的信 提交于 2020-03-13 20:29:03
简介 Java8对Comparator进行了优化,提供了很多非常实用的功能,让我们可以利用Comparator提供的函数就能完成基本的排序功能,而不用机械的自己实现compare函数。 集合sort 从Java8开始很多集合接口都添加了sort方法,这样就不需要使用Collections的sort函数了。 下面看一个List字符串排序的例子: @Test public void stringSort(){ LinkedList<String> names = new LinkedList<>(); names.add("allen"); names.add("dunn"); names.add("Bob"); names.add("cherry"); names.sort(String::compareToIgnoreCase); System.out.println(names); } Comparator的naturalOrder与reversed 从Java8开始我们可以直接通过Comparator的naturalOrder获取一个比较通用的Comparator,只要要比较的元素实现了Comparable就可以。 并且还有一个reversed方法可以简单的获取倒序的Comparator。 还是看一个简单的例子: @Test public void naturalOrder()

python 从列表删除元素

荒凉一梦 提交于 2020-02-27 15:09:56
从列表中删除元素 常用命令如下: del fruits [索引号,如0] //可删除列表任何元素,只知道删除元素的索引号 pop_fruits = fruits.pop() //删除列表最后一个元素,并把删除的值定义为变量pop_fruits的值,可用于其他用途 pop_fruits = fruits.pop(索引号,如1) //可删除列表中任何元素,只需知道元素的位置 fruits.remove(“orange”) //需知道删除元素的值 详细的例子如下: 使用del 语句 / /可删除任何位置的元素,只需知道删除元素在列表中的位置 fruits = [ "apples" , "pear" , "orange" , "cherry" ] del fruits [ 0 ] // 删除列表第一个元素 print ( fruits ) // 输出结果为 fruits = [ "pear" , "orange" , "cherry" ] 使用del语句将值从列表中删除后,就永久删除了,再也无法访问它 使用方法pop() // 可删除列表末尾元素,并让你能够接着使用它 fruits = [ "apples" , "pear" , "orange" , "cherry" ] pop_fruits = fruits . pop ( ) print ( pop_fruits ) print (

PingCAP 的 5 年远程办公实践

丶灬走出姿态 提交于 2020-02-26 19:13:32
前言 2020 年的春节注定是一个不平凡的春节,全国都在抗击新型冠状病毒肺炎。除了不出门,勤洗手,戴口罩之类的常规操作,我们就在想,在这个大背景下,我们还能够做哪些事情?考虑到春节假期临近结束,返程的旅途中可能会加大传染的概率,延长隔离时间、远程在家办公也许是普通群众能给国家在这场战役中做的最大贡献。然而在我们国家,暂且不论别的行业, 至少我们所在的高科技行业还没有普及远程办公的文化,所以我们在此将 PingCAP 实践了近五年的工程师远程办公经验介绍给大家。本文将尽量少描述理念,而更多的从实践方面讲述我们的落地经验,以期在这样的一个特殊的时刻帮助更多的朋友和公司尽快行动起来,为国家为社会贡献一份我们微薄的力量。 我们已经通过实践证明,在这个时代,至少对于类似软件工程这样的主要以脑力和创意为主的工作,已经有足够的方法论和基础设施,让远程工作的效率不比传统模式差,有时候甚至能有更好的产出(相信已经有同学想起了早上拥挤的交通对心情和思维的副作用)。下面我们聊聊一些具体落地的经验。 01 远程办公的管理哲学 远程办公在国外并不是一件新鲜的事情。在硅谷,尤其是新一代的科技公司几乎都有远程工作的基因,这背后有很多原因在这篇文章中就不展开了,如果感兴趣的朋友可以看看来自 37 Signals 的 David Heinemeier Hansson 的《Remote》一书。 对于我们来说

Python集合详解

牧云@^-^@ 提交于 2020-02-26 11:42:58
集合介绍: 集合(set)是一个无序的不重复元素序列。 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 创建格式: parame = {value01,value02,...} 或者 set(value) 实例(Python 3.0+) >>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} >>> print(basket) # 这里演示的是去重功能 {'orange', 'banana', 'pear', 'apple'} >>> 'orange' in basket # 快速判断元素是否在集合内 True >>> 'crabgrass' in basket False >>> # 下面展示两个集合间的运算. ... >>> a = set('abracadabra') >>> b = set('alacazam') >>> a {'a', 'r', 'b', 'c', 'd'} >>> a - b # 求差集(只有a中拥有的而b集合没有的元素) {'r', 'd', 'b'} >>> a | b # 并集(集合a或b中包含的所有元素) {'a', 'c', 'r', 'd', 'b', 'm',

模拟jar包冲突

最后都变了- 提交于 2020-02-25 22:27:06
jar包冲突原因 前段时间,因为经历了项目重构,引入很多包,加上管理不善,出现了很多jar包冲突问题。当时项目想用spring管理hbase实例,引入了org.springframework.data,spring-data-hadoop,2.5.0.RELEASE jar包,出现了guava包的冲突,tomcat对servlet-api加载冲突问题。在最近的开发中也遇到了curator-client包冲突问题。借着这次机会,顺便学习写博客。 其实在java开发中,jar hell是一个很常见的问题,主要是因为jvm在加载的过程中,项目的加载的顺序问题。同一个类(全限定名相同)在jvm中只会加载一次,这里面涉及到类加载和maven依赖管理的知识点。当然,maven已经给我们提供了很多解决的方法。 冲突原因 造成jar包冲突的原因主要有两种 1. 第一种是一个项目,依赖了同一个项目的两个版本。 2. 第二种冲突原因是不同项目中,出现了相同的类。何为相同的类,即类的全限定名相同。 1 2 3 一般的错误有: 找不到方法:java.lang.NoSuchMethodError 找不到类:Exception in thread "main" java.lang.NoClassDefFoundError 找不到变量:Exception in thread "main" java.lang

mac下的改装人生——关于机械键盘

孤者浪人 提交于 2020-01-28 03:02:35
这几天好像弄了很多关于机械键盘的东西,我自己的这块键盘也已经慢慢熟悉了,感觉打字超级爽哈,然后看了很多网上关于机械键盘的帖子,也看了很多教程,在Amazon和Taobao看了很多键盘的价位,前几天还试了吴昊方正和阳小进的键盘。特此来整理一下关于机械键盘的种种,就当作做一个知识的储备。我发现我现在平时的娱乐生活就是看看键盘解下嘴馋,看看视频解下心痒,看看动漫养养眼睛,剩下就是看书写代码了~看来就要成为一个正式的程序员了~ 轴 机械键盘的基本知识,首先从什么说起呢,从轴说起把。轴就是指一个键下面的那个支撑的开关,判断你的键有没有按下去的。现在市场上的键盘分两大类,一个是薄膜键盘,一个是机械键盘。薄膜键盘的轴上是一个橡胶的圆点,键按下去的时候橡胶圆点会变形,然后电路就通了,键盘就知道你按下去了。机械键盘的轴是一个做工精细的机械开关,通过弹簧和机械装置传力,按下去以后机械装置就会下沉,碰到金属片的时候就会通电,同理(我这个是简陋版本的描述,如果有什么常识性的错误的话,请用力喷)。现在市场上是薄膜键盘占大部分天下,因为薄膜键盘很便宜,制造起来很方便。但是薄膜键盘的物理属性就决定了这个键盘的不稳定性,按下去的力度不好控制,而且长久以后橡胶容易形变,按键的手感会差很多。这个方面机械轴就是强项了,虽然一般的机械轴键盘价格偏高,但是由于机械装置很好控制力度

各种机械键盘轴的区别,到底什么轴好

拥有回忆 提交于 2020-01-26 19:38:16
http://www.pcviva.com/jixiejianpanshenmezhouhao.html 如果你已经清楚 什么是机械键盘 ,也阅读了《 机械键盘什么牌子好 》这篇文章,你可能要挑的,就是机械键盘的轴了。 机械键盘什么轴好 呢,我们先看下机械键盘的白轴、黑轴、青轴、茶轴、红轴的区别。 (在多数情况下,PC万岁所说“机械键盘轴”都指Cherry MX轴。) 机械键盘轴的区别(概览) 机械键盘轴的区别: 白轴 操作压力克数比黑轴大 段落感比茶轴强 已停产 黑轴 操作压力:58.9g±14.7g 没有段落感 青轴 操作压力:58.9g±14.7g 触感压力:58.9g±19.6g 段落感很好 茶轴 操作压力:44.1g±14.7g 触感压力:54.0g±14.7g 轻微的段落感 红轴 操作压力44.1g±14.7g 没有段落感 *黄轴——雷柏自己开发的轴,压力50克 PS:什么是机械键盘的“段落感”呢?这很难用文字描述。如果你慢慢滚动鼠标滚轮,会感觉有一个刻度微微卡着,但是你轻微一推,又很快滚过去。键盘的段落感和这个相似。使用过有段落感的机械键盘后,很容易理解。 机械键盘轴的区别(详细) 注意:以下机械键盘轴的区别为公认说法,但实际因个人习惯不同,使用起来感受也不一。比如黑轴被认为是游戏首选机械键盘轴,但是有人喜欢拿来打字。 黑轴:游戏首选 黑轴——cherry的夏天