课程介绍
三阶段:服务端开发 课程时长:20天
学习路线
==git==
==ECMAScript6.0==
==nodejs==
Express
mysql
==ajax+promise== 项目
websocket:双向数据通信
webpack:打包
2.1 git能做什么
作用:团队开发中使用,不是写代码的软件,是一个管理代码的工具
好处:优雅,快速,高效管理版本代码
2.2 主要作用(代码管理工具,管理代码版本)
版本的概念
(1)初指一种书籍经过多次传抄、刻印或以其他方式而形成的各种不同本子。随着时代的发展,版本也开始应用于影视、软件等事物上,形容事物相同但介绍方法等不同的两个事物。
(2)软件版本编号制定是指为软件设置版本号码的方式。通常,版本号码会以数字订定。
(3)软件名称后面经常有一些英文和数字,如:CTS3.3.5、QQ 2021 Beta,这些都是软件的版本标志,通过它,我们可以对软件的类型有所了解。
各版本的时间轴演变,每一次版本的改变,都会有功能的改变
版本管理
早期管理方式
问题:传统管理方式造成了本地电脑上有很多相同的文件,不容易维护,造成了非常混乱的局面。
版本控制软件
常见的版本控制软件:git svn
好处:使用版本控制以后,只需在本地保存一份,各个版本由版本控制软件来进行管理
3.1 git定义
Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。
3.2 git特点
管理版本代码
项目越大,越复杂,git优势越明显
3.3 git三个区域
工作区
写代码
暂存区
某一个功能完成了,就可以存储在暂存区
仓库区
下班,页面完成了,功能完成了,代码提交到仓库
4.1 下载安装
下载网址
Git :官网,国外,速度很慢
NPM, Node.js, Node.js RC, Node.js Nightly, io.js, alinode, nsolid, Python, PhantomJS, electron, electron-builder-binaries, atom-shell, node-chakracore, nodejieba, git-for-windows, nwjs, atom, ChromeDriver, OperaDriver, geckodriver, selenium, node-inspector, fsevents, node-sass, leveldown, leveldown-hyper, mknod, rabin, sodium-prebuilt, utp-native, node-tk5, couchbase, fuse-bindings, zmq-prebuilt, gl, hackrf, sqlite3, sqlcipher, chromium-browser-snapshots, grpc, nodegit, canvas-prebuilt, cypress, flow, robotjs, poi, libjpeg-turbo, moby, yarn, utf-8-validate, jpegtran-bin, pngquant-bin, zopflipng-bin, gifsicle-bin, mozjpeg-bin, cwebp-bin, optipng-bin, jpegoptim-bin, pngcrush-bin, guetzli-bin, gif2webp-bin, pngout-bin, adg-bin, jpeg-recompress-bin, zeromq, minikube, sentry-cli, sharp-libvips, sharp, looksgood-s2, tfjs-models, tensorflow, tf-builds, node-canvas-prebuilt, canvas, node-swc, xprofiler, prisma, argon2 Mirrors:淘宝镜像
安装
双击软件-->一直下一步(不要有中文)
检查是否安装成功
在任意位置右击出现下图
配置用户信息(下载好以后配置一次即可,识别用户,全局)
右击-- Git Bash Here
命令
git config --global user.name 用户名 git config --global user.email 用户邮箱 例子: git config --global user.name ujiuye git config --global user.email [email protected]
查看是否配置用户信息成功
(命令查询): git config --list (文件夹中查看): c -- > 用户 --- > ibm(电脑名称)--- 有一个.gitconfig文件
4.2 步骤
初始化项目
创建项目根文件夹(初始化一次就可以)
当前项目文件中右击 -- Git Bash Here
命令:git init ---- >在当前文件夹中生成一个.git的文件
注意:显示隐藏文件
编写代码(工作区,新建一个html文件)
把工作区的内容添加到暂存区
命令:git add 文件名
把暂存区的内容添加到仓库区(提交)
命令:git commit -m 提交说明
4.3 git 命令
init : 初始化
git init
add :把文件存储到暂存区
git add 文件名 git add . : .代表文件夹下所有的文件和文件夹
commit :将暂存区数据提交到仓库,并且生成一个版本号
git commit -m 提交说明
status:查看仓库中文件的状态(了解)
git status
log : 打印版本信息
git log : 以完整的形式输出 git log --oneline : 以简短的形式输出
reset:版本回退(改需求,新版本有问题)
git reset --hard 版本号(回退到的版本号)
reflog:显示所有的版本信息
git reflog : 以完整的形式输出 git reflog --oneline : 以简短的形式输出
4.4 文件忽略
对于不需要进行版本管理的文件,可以使用文件忽略(一些公共库代码,node_modules)
文件忽略步骤
创建一个配置文件.gitignore(需要和.git同级)
在文件中配置忽略信息
/js/ : 忽略整个文件夹
*.txt:忽略所有.txt文件
/js/a.txt :忽略某个具体的文件
4.5 分支
4.5.1 分支介绍
介绍:
git版本控制系统支持分支操作。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。默认只有一个分支为master主分支。
什么是主分支?
在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支
主分支的问题:
在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验和效率,建议每个开发者都基于分支进行项目功能的开发
分支解决的问题:
用来保存和记录整个项目已完成的功能代码。但是不允许程序员直接在master 分支上修改代码,这样做的风险太高,容易导致整个项目崩溃
协议上规定:不应该在master主分支上维护代码 。应该在主分支的基础上,创建分支然后维护代码
补充说明:
在分支上的提交操作和主分支的提交操作命令一样。
4.5.2 分支相关命令
branch:查看当前git管理的项目中有哪些分支
git branch
注意:一定要初始化项目,提交一次以后就可以看到主分支
branch:创建分支
git branch 分支名 git branch deva dev---开发软件
checkout:切换分支
git checkout 分支名
切换到对应的分支上进行开发维护,第一次从主分支master切换到某一个分支的时候,会将主分支的提交记录复制到对应的分支上
merge:合并分支
git merge 分支名
注意:一般在主分支上进行合并
4.5.3 冲突解决
什么时候会冲突:
两个不同的分支,对同一个文件进行不同的修改,git合并的是好,无法判断合并
手动解决
两份都要,<
只要一份,衡量删那份
在master上再提交一次
介绍
Git 命令都是在本地执行,如果想通过 Git 分享你的代码或者与其他开发人员合作。 就需要将文件放到一台其他开发人员能够连接的服务器上。这就是远程仓库的作用。
目的:把本地的仓库文件上传到远程仓库。
远程仓库分类:
github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响
gitee:github是一个基于git的代码托管平台,在国内较多(码云)
公司自己部署:了解即可,不是前端人员部署的,使用步骤和命令都一样
5.1 操作流程
注册账号
Gitee - 基于 Git 的代码托管和研发协作平台 : 官网
填写注册信息
创建仓库
5.2 git 命令
clone :克隆(用一次,项目第一次下载的时候使用)
git clone 远程仓库地址
pull:拉取(下载远程仓库中的更新文件)
git pull 远程仓库地址
push:提交(将本地文件提交到远程仓库)
git push 远程仓库地址 master git push 别名 master git push -u 别名 master git push
remote : 起别名 (给远程仓库地址起别名)
git remote add 别名 远程仓库地址
remote -v : 查看本地仓库别名是否跟远程仓库进行关联
git remote -v
5.3 新员工进公司操作流程
下载git,配置全局用户信息 (可能不需要)
下载公司项目代码(git clone)
写代码,改代码(add commit)
将代码提交到远程仓库
早上--pull 下班:push
简介:传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。
SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。
SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。
生成密钥步骤:1、打开Git Bash 2、执行相关命令 3、连续敲击3 次回车
相关命令
ssh-keygen
ssh-keygen -t rsa -b 4096 -C "" ssh-keygen -t rsa -b 4096 -C "[email protected]"
查看生成的密钥
将公钥添加到远程仓库中
SVN:SVN是一个开放源代码的集中式版本控制系统,用于多个人共同开发同一个项目,实现共享资源。集中式版本控制系统:版本库是集中存放在中央服务器,开发者需要先从中央服务器获取最新的版本文件,然后开始干活,最后再把自己修改的文件推送到中央服务器。
Git:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库,联网开发不是必须的。但两两开发者之间肯定不会以qq或U盘形式传送,也有一台充当“中央服务器”的电脑(gitee和github)。此服务器的作用仅是用来方便“交换”各开发之间的修改。