Bootstrap

Git快速上手

初识Git

是一个免费开源, 分布式的代码版本控制系统, 帮助开发团队维护代码

作用: 记录代码内容,切换代码版本,多人开发时高效合并代码内容

Git和GitHub

Git是一个软件, Github是一个网站,两者的功能都是提供版本控制服务.

官网: GitHub: Let’s build from here · GitHub

安装Git

  1. 官网: https://git-scm.com/
  2. 快速下载: CNPM Binaries Mirror
  3. 下载安装包后, 双击安装, 全部默认下一步
  4. 验证: 打开bash终端 (git专用终端)
  • 在vscode中, 打开终端, 切换到Git Bahs

  • 或者 桌面空白处右键, 点击 Git Bash Here 打开Git命令行窗口

  • 命令: git -v (出现版本号)

配置用户信息

表明身份, 让Git知道是谁在操作仓库

  1. git config --global user.name "用户名"
  2. git config --global user.email "邮箱地址"
  3. 验证: git config --list
  4. 或者单独查询 git config --global user.name || git config --global user.email

Git仓库

记录文件状态内容的地方, 储存着修改的历史记录

创建

  1. git仓库的本质是一个隐藏的文件夹, 隐藏起来是防止误删除
  2. 如果想要看到, 需要设置显示隐藏文件, 查看->显示隐藏文件夹
  3. 把本地文件夹转换成Git仓库: git init
  4. 从其他服务器上克隆Git仓库: git clone xxxx

管理流程

  1. 工作区: 实际开发时操作的文件夹
  • 暂存制定文件: gti add 文件名
  • 暂存所有文件: git add .
  1. 暂存区: 临时存在工作区的文件
  • 查看暂存区文件: git ls-files
  • 提交暂存区文件: git commit -m "提交说明"
  1. 版本库: 产生一个版本快照

文件状态

Git文件状态有

  1. 未跟踪: 新文件, 从未被Git管理过
  2. 已跟踪: 已经被管理的文件
  3. 查看文件状态:

git status -s 或 git status

操作暂存区

暂存区的作用就是临时存储代码, 减少代码的提交次数, 与版本库解耦合

从暂存区恢复文件: git restore 目标文件

从暂存区移除文件: git rm -- cached 目标文件

回退版本

把版本库某个版本对应的内容快照, 恢复到工作区/暂存区

查看提交历史:

  1. 简洁日志: git log --oneline (只包含提交操作的日志)
  2. 完整日志: git reflog --oneline (包含所有操作的日志)

回退命令:

  1. git reset --soft 版本号 (保留多余文件, 文件状态是未跟踪)
  2. git reset --hard 版本号 (清理多余文件, 工作区完全恢复到对应版本)

忽略文件

.gitignore文件可以让git彻底忽略跟踪指定文件, 避免重复无意义的文件管理

# 忽略依赖文件
node_modules
# 忽略分发文件夹
dist
# 忽略vscode文配置件
.vscode
# 忽略秘钥文件
*.pem
# 忽略证书文件
*.cer
# 忽略日志文件
.log

规则

  1. 该文件对当前目录及子目录生效
  2. #注释的内容
  3. * 代码通配符
  • *.zip 过滤所有.zip文件
  1. 过滤文件夹:
  • 直接写文件夹名
  • 转译写法: /文件夹名/
  1. 过滤具体文件
  • 直接写文件夹名 文件夹名/文件名
  • 转译写法: /mtk/do.c
  1. 不要过滤
  • !index.php

分支

分支的本质是一个容器, 里面装着提交的代码, 默认名字是master

作用

在开发新需求或者修复bug时, 保证主线代码随时可用, 多人协同开发提高效率

命令

  1. 查看分支 git branch
  2. 查看分支文件的状态 git status
  3. 创建分支 git branch 分支名
  4. 切换分支 git checkout 分支名
  5. 新建分支并切换 git checkout -b 分支名
  6. 合并分支 git merge 被合并的分支名 // 先切换到主分支, 再把目标分支合并到主分支
  7. 删除分支 git branch -d 分支名 // 先退出分支,才能删除分支

流程

  1. 如果新任务不想直接在主分支代码上进行, 要保证主分支代码的可用
  2. 先要创建新的分支 git branch 分支名
  3. 然后切换到新的分支 git checkout 分支名
  4. 开发编码完成后, 需要把分支合并到主分支
  5. 切换到主分支 git checkout master
  6. 合并目标分支 git merge 被合并的分支名
  7. 合并完成后, 分支就没用了, 删除分支 git branch -d 分支名

冲突

在不同分支, 对同一个文件的同一部分代码修改后, 就会产生合并冲突

  1. 代码冲突后多交流, 然后取舍代码

  1. 按照页面划分不同分支开发, 修改时尽量只修改自己相关的代码, 不要随意修改其他模块的代码
  2. 公共代码要统一维护, 组长负责修改, 其他成员只拉取,
  3. Node等软件的版本要统一, npm包统一维护, 由组长管理依赖, 其他成员只拉取

远程仓库

提交

托管在互联网或其他网络中的你的项目的版本库, 作用是保存项目, 对人协作

1.0基于Https鉴权

  1. 注册第三方托管平台网站账号
  2. 新建仓库得到远程仓库Git地址
  3. 本地Git仓库 添加 远程仓库原点地址
  • 添加: git remote add 远程仓库别名 远程仓库地址
  • 查看: git remote -v
  • 移除: git remote remove 远程仓库别名
  1. 本地Git仓库推送版本记录到远程仓库
  • git push -u 远程仓库别名 本地:远程分支名
  1. 删除已有的gitee账号凭证
  • 控制面板->用户账户->凭据管理器->删除

2.0基于ssh鉴权

  1. 基于ssh协议只是身份鉴权的方式不同, 使用过程没区别
  2. 创建公私钥对文件
  • ssh-keygen -t rsa -C "[email protected]" //执行指令,连续回车,生产公私钥对
  • c盘->用户->当前账号->.ssh文件->id_ras.pub(文本打开) //获取公钥
  1. 在Github中配置好SSH
  2. 正常操作,克隆/添加/提交/同步

克隆

拷贝一个Git仓库到本地进行使用

  1. git clone 远程仓库地址
  2. 效果: 在运行命令的所在文件夹, 生成work项目文件夹
  3. 注意: Git本地仓库已经建立好和远程仓库的连接
  4. 注意: 仓库公开可以随意克隆, 推送需要身为仓库团队成员

协同开发

  1. 拉取代码: git pull 远程仓库别名 分支名
  • 该命令是复合写法, 等价于:
  • 等价于 git fetch 远程仓库别名 本地:远程分支名 (获取远程分支记录到本地,未合并)
  • git merge 远程仓库别名/本地分支名 (把远程分支记录合并到所在分支下)
  1. 开发->拉取->推送, 先拉取再推送, 可以防止覆盖他人的代码

图形化操作

vscode编译器提供了图形化操作

  1. 打开更改的文件
  2. 恢复使用暂存区文件
  3. 把文件提交到暂存区
  4. 提交文件到远程仓库

命令总结

;