normal merge
1 | git checkout -b f1 |
当白云悠然褪去我已等不及登上高山仰望西方的天空但最美的不是夕阳是夜色如水月色流离
1.直接合并(straight merge):
把两条分支上的历史轨迹合并,交汇到一起。
比如要把dev分支上的所有东东合并到master分支:
首先先到master分支:git checkout master
然后把dev给合并过来:git merge dev
注意没参数的情况下merge是fast-forward的,即Git将master分支的指针直接移到dev的最前方。
换句话说,如果顺着一个分支走下去可以到达另一个分支的话,那么Git在合并两者时,只会简单移动指针,所以这种合并成为快进式(Fast-forward)。
2.压合合并(squashed commits):
将一条分支上的若干个提交条目压合成一个提交条目,提交到另一条分支的末梢。
把dev分支上的所有提交压合成主分支上的一个提交,即压合提交:
git checkout master
git merge –squash dev
此时,dev上的所有提交已经合并到当前工作区并暂存,但还没有作为一个提交,可以像其他提交一样,把这个改动提交到版本库中:
即,使用–squash参数,这样提交的commit只有一个parent,即原来的分支,
图形看起来,比较好看。
不加的话,有两个parent,还能看见合并过来那个分支的图形,看着乱~~
1 | function test(str) { |
1 | function Parent(username) { |
call方法是Function类中的方法
call方法的第一个参数的值赋值给类(即方法)中出现的this
call方法的第二个参数开始依次赋值给类(即方法)所接受的参数
1 | function test(str) { |
1 | var animals = [ |
apply方法接受2个参数,
A、第一个参数与call方法的第一个参数一样,即赋值给类(即方法)中出现的this
B、第二个参数为数组类型,这个数组中的每个元素依次赋值给类(即方法)所接受的参数1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20function Parent(username) {
this.username += username;
this.hello = function() {
alert(this.username);
}
}
function Child(username, password) {
Parent.apply(this, new Array(username,username,username));
this.password = password;
this.world = function() {
alert(this.password);
}
}
var parent = new Parent("zhangsan");
var child = new Child("lisi", "123456");
parent.hello();
child.hello();
child.world();
与call()方法类似,第二个参数为数组,可以直接使用arguments
1 | function Person() {} |
1 | function Parent(hello) { |
#
git commit
1 | git commit |
#
ref : https://nodejs.org/api/debugger.html
1 | // start script |
1 | cont, c - Continue execution |
#
^once 以once开头的字符串
bucket$
^bucket$
once
^\t 制表符
\n
\r
\
.
[a-z] //匹配所有的小写字母
[A-Z] //匹配所有的大写字母
[a-zA-Z] //匹配所有的字母
[0-9] //匹配所有的数字
[0-9.-] //匹配所有的数字,句号和减号
[ \f\r\t\n] //匹配所有的白字符
^[a-z][0-9]$ 匹配两个字符,字母+数字
^[^0-9][0-9]$ 匹配两个字符,非数字+数字
[^a-z] //除了小写字母以外的所有字符
[^\\/\^] //除了()(/)(^)之外的所有字符
[^\”\’] //除了双引号(“)和单引号(‘)之外的所有字符
^[a-zA-Z0-9_]{1,}$ //所有包含一个以上的字母、数字或下划线的字符串
^[1-9]{1,}$ //所有的正数
^-{0,1}[0-9]{1,}$ //所有的整数
^[-]?[0-9]+.?[0-9]+$ //所有的浮点数
^[1][358][0-9]{9}$
/^([a-zA-Z0-9_.-])+\@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
var re=/^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}$/;
^[1-9]d$ //匹配正整数
^-[1-9]d$ //匹配负整数
^-?[1-9]d$ //匹配整数
^[1-9]d|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d|0$ //匹配非正整数(负整数 + 0)
^[1-9]d.d|0.d[1-9]d$ //匹配正浮点数
^-([1-9]d.d|0.d[1-9]d)$ //匹配负浮点数
^-?([1-9]d.d|0.d[1-9]d|0?.0+|0)$ //匹配浮点数
^[1-9]d.d|0.d[1-9]d|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d.d|0.d[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
1 | var add = function(a,b){ |
都是8好像sub没什么用啊,主要是因为 add 和 sub 这两个方法没有用到 this 这个对象
1 | var add = function(a,b){ |
虽然运行了add的方法 ,但是用到了sub对象的参数(this.alias)