标签:默认值 parent 回退 fast amp 拷贝 隐藏 less 多个
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
git安装
下载地址:https://git-for-windows.github.io
配置个人信息(名字与邮箱)
使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名
git config --global user.name "Your Name" git config --global user.email "email@example.com"
查看是否配置成功,用命名git config -l
git init:把当前目录变成一个git仓库
以上命令会在当前目录下创建了一个.git 隐藏目录,它就是所谓的Git 仓库。生成仓库后的目录就不是普通的文档目录了,我们将其称为工作区,所以工作区中都包含一个git仓库,而一个git仓库中又包含一个暂存区和一个版本库
Git有三大区 ( 工作区、暂存区、版本库 )以及 几个状态 ( untracked、unstaged、uncommited )
创建(修改)文件
往工作区中添加/修改文件
添加到暂存区:git add <file>
把修改存放到暂存区
提交到版本库:git commit -m "备注"
使用git commit 命令可将暂存区的内容提交至版本库中,这个过程称为提交,每一次提交都意味着版本在进行一次更新
PS:如果不写-m回车会进入vim编辑界面,退出方法:输入:q => 回车
git status
git log
git checkout -- <file>:放弃工作区的修改
git rm --cache <file>:撤销暂存区的修改
git reset HEAD <file>:撤销暂存区的修改
git diff <file>
git reset --hard HEAD^
git reset --hard [commit id]
版本号没必要写全,前几位就可以了,Git会自动去找。git reset --hard [commit id] <file>
ssh-keygen -t rsa -C ‘xxx@xx.com‘
ssh -T git@github.com
建立本地仓库与远程仓库的连接
关联远程仓库
先有本地仓库,后有远程仓库的时候,如何关联远程仓库
git remote add origin 远程仓库地址
PS:删除远程仓库连接:git remote remove <远程仓库名>
从远程库克隆(推荐)
先有远程库,后有本地仓库的时候,如何关联远程仓库
git clone 远程仓库地址
git push
格式:git push <远程主机名> <本地分支名>:<远程分支名>
建议使用git push -u origin master推送文件
格式:git pull <远程主机名> <远程分支名>:<本地分支名>
–allow-unrelated-histories
push和pull后的分支顺序格式:<来源地>:<目的地>
了解概念概念:master、HEAD、提交
git branch <name>
git checkout <name>
以上两步合并为:
git checkout -b <name>
git branch
git merge <branch name>
git branch -d <name>
git branch -D feature-vulcan
因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。
.gitignore文件常见写法如下:
/dist 过滤dist根目录下的文件(不过滤其他目录下的dist文件夹)
/mtk/ 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/do.c 过滤某个具体文件
很简单吧,被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是git status查看状态时看不到,且push的时候不会上传。
SASS是一个成熟、稳定、强大的 CSS 扩展语言解析器,提供变量、嵌套、混合、继承等特性,大大节省了设计者的时间,使得CSS的开发变得简单和可维护
注释
sass有两种注释方式(与js相同)
body {
color: #333; // 这种注释内容不会出现在生成的css文件中
padding: 0; /* 这种注释内容会出现在生成的css文件中 */
}
变量
sass的变量必须是$开头,后面紧跟变量名,而变量值和变量名之间就需要使用冒号(:)分隔开(就像CSS属性设置一样)。
全局变量与局部变量
定义在任何选择器之外的变量被认为是全局变量,定义在选择器内的变量称之为局部变量。
但启用了global后,即使写在局部也能覆盖全局变量(sass 3.4版本后可用)
$color:#fff !global;
默认变量:sass的默认变量仅需要在值后面加上!default即可。
$fontSize:12 !default;
$fontSize:16;
$fontSize:12 !default;
$borderDirection:top !default;
//应用于class和属性
.border-#{$borderDirection}{
border-#{$borderDirection}:1px solid #ccc;
}
嵌套(Nesting)
css中重复写选择器是非常恼人的。如果要写一大串指向页面中同一块的样式时,往往需要 一遍又一遍地写同一个ID
#content article h1 { color: #333 }
#content article p { margin-bottom: 1.4em }
#content aside { background-color: #EEE }
#content {
article {
h1 { color: #333 }
p { margin-bottom: 1.4em }
}
aside { background-color: #EEE }
}
混合器(mixin)
变量可以实现简单样式的重用(如color,width等),但是当你的样式变得越来越复杂,你需要大段大段的重用样式的代码,可以通过sass的混合器实现重用
sass中使用@mixin
声明混合,通过@include来调用
- 无参数mixin
- 有参数mixin:参数名以$符号开始
- 多个参数mixin:多个参数以逗号分开
- @content
```
@mixin max-screen($res){
@media only screen and ( max-width: $res )
{
@content;
}
}
@include max-screen(480px) {
body { color: red }
}
```
PS:@mixin通过@include调用后解析出来的样式是以拷贝形式存在的,而下面的继承则是以联合声明的方式存在的,所以从3.2.0版本以后,建议传递参数的用@mixin,而非传递参数类的使用下面的继承%。
继承
使用选择器的继承,要使用关键词@extend
//占位符编译后不存在css样式中
%ir{
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
@extend %ir;
函数
Sass中的数字函数提要针对数字方面提供一系列的函数功能:
$oneWidth: 10px;
$twoWidth: 40px;
@function widthFn($n) {
@return $n * $twoWidth + ($n - 1) * $oneWidth;
}
.leng {
width: widthFn($n : 5);
}
运算
sass具有运算的特性,可以对数值型的Value(如:数字、颜色、变量等)进行加减乘除四则运算。请注意运算符前后请留一个空格,不然会出错。
条件判断及循环
@if判断
@if可一个条件单独使用,也可以和@else结合多条件使用
@if $type == ocean {
color: blue;
} @else if $type == matador {
color: red;
} @else {
color: black;
}
for循环
@for $var from <start> through <end>(包含end值)
@for $var from <start> to <end>(不包含en值)
gulp.task(‘sass‘, function () {
return gulp.src(‘./sass/**/*.scss‘)
.pipe(sass({outputStyle: ‘compressed‘}).on(‘error‘, sass.logError))
.pipe(gulp.dest(‘./css‘));
});
//文件监听(文件有修改自动编译)
gulp.task(‘sassWatch‘,function(){
gulp.watch(‘./src/sass/*.scss‘,[‘sass‘]);
});
gulp是当下最流行的自动化工具 ,可以自动化完成我们开发过程中大量的重复工作。
为什么要用自动化构建工具? 主要是用来自动完成一系列重复的操作,如:
全局安装 gulp:
npm install --global gulp
本地安装gulp:
作为项目的开发依赖(devDependencies)安装:
npm install --save-dev gulp
创建gulpfile.js文件
在项目根目录下创建一个名为 gulpfile.js 的文件(重要)
说明:gulpfile.js是gulp项目的配置文件,是位于项目根目录的普通js文件,内容如下:
var gulp = require(‘gulp‘);
gulp.task(‘default‘, function() {
// 将你的默认的任务代码放在这
});
运行 gulp:
在命令行执行以下命名
gulp <任务名称>
如果不写任务名称,则自动运行default任务(如果有)
PS:文件流=>文件在内存中的状态
创建任务
gulp.task(‘buildsass‘,function(){
});
匹配要处理的文件
gulp.src(globs[, options])
globs匹配语法:https://github.com/isaacs/node-glob(底部PS)
options 有3个属性buffer、read、base
输出文件
gulp.dest(path[, options])
把文件流中的内容中输出到指定目录
监听文件修改,并执行相应任务
gulp.watch(glob [, opts], tasks)
gulp.watch(glob [, opts, cb])
大部分插件都可以在http://www.npmjs.com找到,任何插件的使用都要经历以下三步:
1. 安装插件:npm
npm install --save gulp-htmlmin
引包:require()
var htmlmin = require(‘gulp-htmlmin‘)
使用:pipe()
gulp.task(‘htmlmin‘,function(){
gulp.src(‘src/html/*.html‘)
.pipe(htmlmin())
.pipe(gulp.dest(‘dist/html‘));
});
globs需要处理的源文件匹配符路径,语法如下
gulp.src(‘src/js/index.js‘)
gulp.src([‘src/js/index.js‘,‘src/js/detail.js‘]) //多个文件以数组形式传入
gulp.src(‘src/js/*.js‘)
使用案例
gulp.src([‘src/js/*.js‘, ‘!src/js/**/{test1,test2}.js‘])
标签:默认值 parent 回退 fast amp 拷贝 隐藏 less 多个
原文地址:http://www.cnblogs.com/jason-hhc/p/QQ2543347208.html