Cherry

git cherry-pick 报错is a merge but no -m option was given

ぐ巨炮叔叔 提交于 2020-04-25 05:44:41
gerrit上提示代码冲突的时候,我们首先会想到rebase下,不行的话就只能解决冲突了,最简单的做法是我的另一篇博客https://www.cnblogs.com/zndxall/p/9140813.html 中的方法,但是有的时候还是会出现问题,报错commit xxxx is a merge but no -m option was given,如下: 或者执行git cherry-pick 4e73b64a5fc251e6ff82aa1db4316bd4ecd389d5 是一样的效果。 出现这个问题,是因为提交的代码之前pull 了其他人的代码并合入了自己本地的代码,产生了一个merge操作以后,又push到代码仓,就会出现这种情况,我们看下他的提交日志: 分3个点解释,标记“1”很明显是一个merge操作,标记“2”是他自己的改动,标记“3”我们看到parent节点有两个,一个merge里有多个父节点,cherry-pick的时候至少要指定一个父节点,可以用-m parent-num来指定,parent-num 默认从1开始,比如上面的两个父节点, 上面一个父节点29b3eb321d8f512616fad12ce40d7ed22d5d4371的parent-num 为1 ,

如何挑选多个提交

允我心安 提交于 2020-04-25 02:07:09
问题: I have two branches. 我有两个分支。 Commit a is the head of one, while the other has b , c , d , e and f on top of a . 提交 a 是一个的头,而其他有 b , c , d , e 和 f 之上 a 。 I want to move c , d , e and f to first branch without commit b . 我想将 c , d , e 和 f 移到第一分支而不提交 b 。 Using cherry pick it is easy: checkout first branch cherry-pick one by one c to f and rebase second branch onto first. 使用樱桃挑选很容易:以 c 到 f 逐个签出第一个分支樱桃选择,然后将第二个分支重新设置为第一个分支。 But is there any way to cherry-pick all c - f in one command? 但是,有什么方法可以在一个命令中挑选所有 c - f 吗? Here is a visual description of the scenario (thanks JJD ): 这是该场景的直观描述(感谢 JJD ):

使用git如何规范地向主线提交代码

强颜欢笑 提交于 2020-04-24 15:49:26
使用git向主干分支合并代码通常采用两种方式:第一种是merge,第二种是利用BeyondCompare等工具进行比对,将差异合并到主干; 通过merge合并代码出现冲突时,并不清楚谁的修改和谁的修改发生了冲突,在没有了解冲突背景的情况下解决冲突可能引入问题; 利用BeyondCompare等比对工具直接将代码合入会丢失大量的commit信息,影响后续代码的可追溯性。 个人建议采用git cherry-pick进行代码合并;首先在自己的开发分支上进行开发调试,验证通过后进行代码提交整理,识别功能性提交和调试性提交,将调试性提交与之前的功能性提交进行commit合并,最后将整理后的commit通过git cherry-pick合并到主干分支,具体步骤如下: 1.从主线分支master拉取自己的开发分支self_develop; 2.在自己的开发分支self_develop上进行开发、调试、验证,直至当前小功能点验证通过; 3.在自己的开发分支self_develop上执行git log >gitlog.txt, 将commit信息导出到gitlog.txt中,如下所示(请无视中文commit log,这是自己的LaTex文档库😀); 4.使用notepad++等文本编辑器,过滤出以commit起始的commit id信息,从中截取拉取开发分支时的base以及后续开发提交部分,如下所示

Git应用详解第九讲:Git cherry-pick与Git rebase

我是研究僧i 提交于 2020-04-20 17:48:41
前言 前情提要: Git应用详解第八讲:Git标签、别名与Git gc 这一节主要介绍 git cherry-pick 与 git rebase 的原理及使用。 一、 Git cherry-pick Git cherry-pick 的作用为移植提交。比如在 dev 分支错误地进行了两次提交 2nd 和 3rd ,如果想要将这两次提交移植到 master 分支上。采用先删除再添加的方法将会很繁琐,而使用 cherry-pick 就能轻松实现这一需求。 首先在版本库中创建了两个分支 master 和 dev ,并模拟上述场景: 可以看到,在 dev 分支上进行了两次提交,在 master 分支上只进行了一次提交。现在想要将这两次提交 移植 到 master 分支上。整体分为两步: 第一步: 将 dev 分支上多余的两次提交移植到 master 分支上; 第二步: 删除 dev 分支上多余的两次提交; 1.第一步 git cherry-pick commit_id 首先切换到 master 分支,然后使用如下命令将 dev 分支上的两次提交移植到 master 分支上: //移植2nd提交 git cherry-pick 009dd //移植3rd提交 git cherry-pick aec8c 009dd 和 aec8c 分别表示需要移植的提交 2nd 和 3rd 的 SHA1 值:

CSS属性选择器

拥有回忆 提交于 2020-04-17 13:06:28
【推荐阅读】微服务还能火多久?>>> CSS属性选择器 一、总结 一句话总结: CSS属性选择器是中括号,比如[love="you"] {color: red;},也比如vue中解决插值表达式的[v-cloak] [love] { color : green ; } [love="me"] { color : red ; } 二、CSS属性选择器 转自或参考:CSS属性选择器 https://www.cnblogs.com/cherry2020/p/12671296.html 1 /* 属性选择器相关样式 */ 2 3 4 [love] { 5 color : green ; 6 } 7 8 [love="me"] { 9 color : red ; 10 } 1 <! DOCTYPE html > 2 < html lang ="ch-zn" > 3 < head > 4 < meta charset ="UTF-8" > 5 < title > Title </ title > 6 < link rel ="stylesheet" href ="css04.css" > 7 < style > 8 div>[class^=first] { 9 color : yellow ; 10 } 11 div>[class$=CD] { 12 color : aqua ; 13 } 14

git同步某个commit

爷,独闯天下 提交于 2020-04-15 12:11:29
【推荐阅读】微服务还能火多久?>>> 首先 git cherry-pick ID(commit) 如果有冲突解决冲突 然后在git add 最后git cherry-pick ---continue 来源: oschina 链接: https://my.oschina.net/u/4351537/blog/3235309

Python语言上机题实现方法(持续更新...)

最后都变了- 提交于 2020-04-13 15:57:43
【今日推荐】:为什么一到面试就懵逼!>>> Python语言上机题实现方法(持续更新...) 1.【字符串循环左移】给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动到字符串的尾部,得到新字符串“cdefab”,称作字符串循环左移k位。 输入格式: 输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。 输出格式: 在一行中输出循环左移N次后的字符串。 输入样例: abcd 2 输出样例: cdab 【 代码】: a = input() N = int(input()) b = a[0:N] c = a[N:len(a)] + b print(c) 2.【最后一个单词】计算字符串最后一个单词的长度,单词以空格隔开。 输入格式: 一行字符串,非空,长度小于5000。 输出格式: 整数N,最后一个单词的长度。 输入样例: hello world 输出样例: 5 【代码】: a = input() b = a.split(" ") c = b[len(b)-1] print(len(c)) 3.【计算字符个数】接受一个由字母和数字组成的字符串,和一个字符,然后输出输入的字符串中含有该字符的个数。不区分大小写。 输入格式: 输入一个由字母和数字组成的字符串,和一个字符,以空格隔开。

Python list,tuple,dict,set高级变量常用方法

帅比萌擦擦* 提交于 2020-04-09 17:46:54
list列表 增加 append 在列表中追加,一次只能加一个 insert 按索引插入,一次只能插一个 extend 迭代追加到列表中 list1 = [1, 2, 3] list2 = [4, 5, 6] list1.append(2) print(list1) list1.insert(1, 4) print(list1) list1.extend(list2) print(list1) 输出: [1, 2, 3, 2] [1, 4, 2, 3, 2] [1, 4, 2, 3, 2, 4, 5, 6] 删除 remove 按照元素值删除,一次只能删除一个 pop 按索引删除,也可以按切片跟步长删除,默认删除最后一个(输出返回值) clear 清空列表 del 删除整个列表 list1 = [1, 2, 3, 4, 5, 6] list1.remove(3) print(list1) list1.pop() print(list1) list1.pop(2) #或者del list1[2]不推荐 print(list1) list1.clear() print(list1) del list1 print(list1) 输出: [1, 2, 4, 5, 6] [1, 2, 4, 5] [1, 2, 5] [] NameError: name 'list1' is not

JS的this指向及改变this指向的方法

早过忘川 提交于 2020-04-06 10:06:11
写在前面 call、apply与bind都可以用来修改this的指向,但是他们之前有什么区别呢?下面我们来举例子说明一下。 this指向 请说出下面这个函数的输出结果: var o = {hobby: 'abc'} function test(){ console.log(this.hobby); } test() 这个题考查的就是this指向的问题,在本题中,test函数是由window调用的,所有this指向window对象,但是在window对象中,并没有hobby属性,所以输出是undefined。 在看一道题: var name = "windowName"; var a = { name: "cherry", func1: function() { console.log(this.name); }, func2: function() { setTimeout(function() { this.func1() }, 100); } }; a.func2(); 这也是this指向的问题,我调用a.func2,在setTimeout中调用this.func1,但是setTimeout也是由window对象调用的,所以this指向window,但是在window中并没有func1函数,所以此时会报错: Uncaught TypeError: this.func1 is

选择与Git进行提交意味着什么?

时光毁灭记忆、已成空白 提交于 2020-04-06 06:02:23
问题: Recently, I have been asked to cherry-pick a commit. 最近,有人要求我 cherry-pick 提交。 So what does cherry-picking a commit in git mean? 那么在git中选择提交是什么意思呢? How do you do it? 你怎么做呢? 解决方案: 参考一: https://stackoom.com/question/dBbx/选择与Git进行提交意味着什么 参考二: https://oldbug.net/q/dBbx/What-does-cherry-picking-a-commit-with-Git-mean 来源: oschina 链接: https://my.oschina.net/stackoom/blog/3213129