Git的基本使用
- 查看帮助:
git --help
- 查看某一命令帮助:
git add -h
基础配置
- 需要配置:user.name 和 user.email
- 作用:每次 Git 提交时都会引用这两条信息,记录是谁提交了更新
- 配置用户名:
git config --global user.name "用户名"
git config --global user.name ‘jack’ - 配置邮箱:
git config --global user.email "邮箱地址"
git config --global user.email ‘aa@bb.com’ - 查看配置信息:
git config --list
- 使用
--global
实现全局配置,任何位置使用git都有效
初始化仓库
- 命令:
git init
- 作用:使用Git管理项目的初始化操作,会创建一个名为
.git
的隐藏目录 - 一般是在项目的根目录执行这个命令
.git
目录:
它是 Git 用来保存元数据和对象数据库的地方。
该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。
跟踪文件
- 作用:将文件由 工作区 添加到 暂存区(Index),暂存文件
- 命令:
git add 文件路径
- 例如:
git add ./README.md
- 例如:
git add --all
或者git add -A
(简写) 添加所有文件git add a.txt b.txt
同时添加两个文件git add *.js
添加当前目录下的所有js文件
提交更新
- 作用:将文件由 暂存区 添加到 仓库(HEAD)
git commit -m "提交说明"
查看文件状态
- 命令:
git status
- 命令:
git stauts -s
简化日志输出格式
查看提交日志
- 命令:
git log
查看详细的提交信息 sha 值 - 命令:
git log --oneline
简洁的日志信息 - 命令:
git reflog
查看所有提交变更操作
版本回退
- 作用:恢复到已经提交的某一个版本中
- 命令:
git reset --hard [版本号]
- 作用:回退到指定的版本号
- 其他方式:
git reset --hard head~1
- ~1 表示回到上一次提交
- ~2 表示上上一次提交
- ~0 表示当前提交
忽略文件
- 作用:忽略一些不需要被git管理的文件
1 在与 .git 隐藏目录同级的目录中创建 `.gitignore` 文件
2 打开 .gitignore 文件,加入忽略文件,例如:/test.html
3 路径是相对于当前 .gitignore文件 的路径
路径写法:
/css/a.css
/css/*.css
/a.html
#忽略 build/ 目录下的所有文件
build/
忽略文件的说明
- 1 使用
#
表示注释,例如:# 这是注释内容
- 2 使用
*
表示通配符,匹配所有文件,例如:/css/*.css
将代码提交到远程仓库(HTTPS)
- 1 在本地创建仓库
git init
git config
- 2 新建 README.md 文件,并输入任意内容
- 3 将 README.md 提交到本地
git add
git commit
- 4 在github中新建仓库,并拿到仓库地址
- 5 使用命令
git push [仓库地址] master
提交内容到github的默认分支 - 6 刷新github仓库页面,在线修改 README.md 文件,并提交
- 7 使用命令
git pull [仓库地址] master
获取仓库中的最新内容
获取远程仓库内容
- 命令:
git pull [仓库地址] [分支名称]
获取远程仓库最新内容 - 命令:
git clone [仓库地址] [自定义本地仓库名]
将整个仓库克隆到本地- 实例:
git clone git://github.com/jquery/jquery.git myJQ
- 实例:
简化操作
- 1
git remote add origin [仓库地址]
- 作用:使用origin代替 仓库地址 ,方便操作
- origin就相当于js的变量,[仓库地址]就相当于变量的值
- 2
git push -u origin master
- 作用:
-u
参数将origin与master连在一起
- 作用:
- 3 使用简化命令
git push origin
就代替原来:“git remote add origin [仓库地址]”
执行Node环境代码的方式
- 直接在命令行中输入
node
,进入Node的REPL
运行环境:- R:Read:读取
- E:Evaluate:执行
- P:Print:输出
- L:Loop:循环
- 将Node代码写入到一个js文件中,然后通过
node 要执行的JS文件路径
去运行Node代码
NPM包管理工具
JS模块的基本单位是单个JS文件,但复杂些的模块往往由多个子模块组成。为了便于管理和使用,我们可以把由多个子模块组成的大模块称做包,并把所有子模块放在同一个目录里。
- Node.js 的包管理器 npm,是全球最大的开源库生态系统。
- 先使用
npm init -y
初始化一下包管理文件package.json
,将来所有安装的包,都会记录到这个文件中 - 使用
npm install 包名 --save(默认)/--save-dev
去安装包;其中,install
可以简写成i
; --save
表示把包安装到部署依赖中(在开发和部署上线都需要使用的包);--save-dev
表示安装到开发依赖(只在项目开发阶段需要用到的包);--save
可以简写成-S
;--save-dev
可以简写成-D
;npm uninstall 包名 --save/--save-dev
或者npm remove 包名 --save/--save-dev
npm i webpack -g
,其中,-g
表示全局安装某些包,通过-g
安装的包都在C:\Users\用户名\AppData\Roaming\npm
下面- 查看全局安装的包:
npm list -g --depth 0
- 如果需要下载指定版本,通过@符号指定版本号,npm i jquery@1.9 -S
npm cache clean --force
清除缓存命令
- 先使用
什么是NPM淘宝镜像呢:
由于每次安装包需要走国外的网络,速度很慢,所以,淘宝帮我们在国内创建了一个NPM包托管网站,能够提升使用NPM装包时候的速度!
全局安装nrm: npm i nrm -g
查看已经配置的包托管网站: nrm ls
切换使用taobao或者cnpm: nrm use taobao ( nrm use cnpm )
包结构
-
package.json: 包描述文件
-
⭐dependencies。当前包需要的依赖。这个属性十分重要,NPM会通过这个属性,帮你自动记载依赖的包。(-S)
-
⭐main。模块引入方法require()在引入包时,会优先检查这个字段,并将其作为包中其余模块的入口,如果不存在这个字段,require()方法会查找包目录下的index.js、index.node、index.json文件作为默认入口。
-
⭐devDependencies。一些模块只有在开发时需要的依赖。(-D)
-
⭐scripts。脚本说明对象。该对象指明了在进行操作时运行哪个文件,或者执行哪条命令。可以自己配置命令。
"start": "node ./app.js", "dev": "node ./dev.js" }, // 启动脚本命令: npm run start 或者npm run dev
-
bin:用于存放可执行二进制文件的目录
-
lib:用于存放JavaScript代码的目录
-
doc:用于存放文档的目录
-
test:用于存放单元测试用例的代码
包描述文件package.json
- name。包名,需要在NPM上是唯一的。不能带有空格
- description。包简介。通常会显示在一些列表中。
- version。版本名。一个语义化的版本号,通常为x.y.z。该版本号十分重要,常常用于NPM中的分类搜索。
- maintrainers。包维护者的数组。数组元素是一个包含name、email、web三个属性的json对象。
- contributors。包贡献者的数组。第一个就是包作者本人。在开源社区,如果提交的patch被merge进master分支的话,就应当加上这个贡献patch的人,格式包含name和:email。如:
"contributors": [{
"name": "Jackson Tian",
"email": "mail @gmail.com"
}, {
"name: "fengmk2",
"email": "mail2@gmail.com"
}]
- bugs。一个可以提交bug的URL地址。地址可以是邮件地址,也可以是网址
- licenses 。包所使用的许可证。例如:
“licenses”: [{ “type”: “GPLv2”, “url”: “http://www.example.com/licenses/gpl.html”, }] - repositories。托管源代码的地址数组。
- homepage。当前包的网站地址。
- os。操作系统支持列表。
- cpu。CPU架构的支持列表。
- engine。支持的JavaScript引擎列表。
- builtin。标志当前包是否是内建在底层系统的标准组件。
- drectories。包目录说明。
- implements。实现规范的列表。
- author。包作者。
- bin。一些包作者希望包可以作为命令行工具使用。
其他
- npm i josn-server -g 全局安装这个模拟服务器管理的包
- json-server --watch db.json 监听这个文件,需要在这个文件所在的位置输入这个命令