Git
是什么 : 分布式版本管理工具
作用 :
- 记录代码的版本,可以随时回退。
- 配合远程仓库,实现多人协作,可以很轻松的合并代码
版本管理工具
作用 :
- 记录 : 记录代码开发的过程,每一次代码的变化。
- 回退 : 将代码回退到之前的版本
- 查看 : 查看所有的版本
- 协作 : 配合远程仓库,实现多人协作
版本管理工具业务场景
业务场景一:项目的需求不断的变化,改来改去,也可能需要改回原来的代码。
业务场景二:多个合作开发,代码不好合并。
- 使用版本管理软件 + 远程仓库,可以解决多人合作的问题。
版本管理工具分类
集中式,典型代表 SVN
由一个代码服务器集中管理代码
- 优点 : 代码必须储存在服务器上,如果没有服务器则无法提交和更新,代码安全性更高
- 缺点 : 如果服务器奔溃了,就不能使用了
分布式,典型代表 Git
每个用户都在本地拥有一个完整的仓库
优点 :
- 如果任意服务器奔溃,可以立即从其他用户手中 clone 一份完整的代码库出来,不用担心服务器奔溃
- 可以本地提交,随时随地的进行业务开发
总结 : 前端领域更多的使用 Git 而不是 SVN
Git软件安装注意
- 最好不要修改安装路径,容易出现乱码
- 安装路径中不要含有中文
- 安装完毕,绝对不要剪切(移动)到其他文件夹。
- 路径中文件夹不要出现重命名的
- 安装完毕, 输入
git --version
看到版本号,则表示安装成功
配置参数
设置用户名 :
git config --global user.name "xxx"
设置邮箱 :
git config --global user.email "xxx"
注意 : 配置之后,可以通过下面的命令来检查是否配置成功了
查看所有的全局配置项 :
git config --list --global
查看单个的配置项 :
git config user.name
git 指令操作
基础操作:
1. git init
: 项目初始化;
2. git add xxx
: 添加指定文件到暂存区;
3. git add .
: 所有文件添加到暂存区;
4. git commit -m "日志"
: 暂存区文件添加到本地仓库;
5. git status -s
: 查看所有文件状态;
6. git log -n
: 产看最近 n 次提交
7. git reflog
: 查看提交日历;
8. git log/reflog -n --oneline
: 查看提交日历一行显示
9. git reset --hard 版本号
: 版本切换(回清除之前未提交的代码且不能恢复)
10. git reset --soft 版本号
: 版本切换(不会清除未提交的代码)
注意 : 一个项目 git init
初始化工作只需要做一次。
get 分支操作:
1. git branch
: 查看分支(主分支要提交一次);
2. git branch XXX
: 创建分支(根据主分支创建);
3. git checkout XXX
: 切换分支;
4. git checkout -b XXX
: 创建并切换分支;
6. git merge XXX
: 主分支合并功能分支;
注意 : 分支代码提交之后才能切换,合并代码是站在主分支上,合并功能分支
git 推送至远程仓库
1. 在 Gitee 或 Github 等平台创建一个远程仓库
2. https 提交相比 ssh 提交,ssh更安全,但是要在远程仓库配置 SSH Keys
3. 关联远程仓库
git remote add origin 仓库地址
: 添加关联远程仓库git remote remove origin
: 删除关联远程仓库git remote -v
: 查看关联的远程仓库git push -u origin 分支名
: 推送到远程仓库分支
git 多人协作开发:
1. git clone SSH/HTTPS远程仓库地址
: 克隆远程仓库
2. git pull origin 分支名称
: 拉取远程仓库分支里面最新的代码
3. git remote show origin
: 查看远程仓库分支
4. git checkout 远程分支
: 跟踪分支(主分支拉,跟踪分支拉取在切换)
5. .gitignore
文件 : 可以忽略文件和文件夹,脱离git的管理
实际业务中代码提交流程
前提 : 一般情况下,不允许向主分支 push
业务环境的分支 :
- master(线上稳定版本的代码)
- dev(开发分支)
- staging(测试服务器分支)
- login(业务分支…)
业务中不能向主分支直接 push 代码,需要在远程仓库中 Pull Request (PR)
PR 提交流程 :
- 在本地新建一个分支
- 功能完成后,提交到本地
- 将分支推送至远程仓库分支
- 去远程仓库新建一个 PR
- 邀请检查
- 检查通过后合并到目标分支
业务中代码提交日志规范 :
- feat:新增功能
- fix:修复 Bug
- docs: 修改文档
- chore: 添加或修改依赖库(yarn add / yarn remove)
- style:修改代码风格
- refactor: 重构
- perf: 性能优化、体验优化
- test: 测试用例
- build: 添加一些打包需要用的依赖