版本控制系统:管理随时间变化的数据
SVN 与 Git
Git
Git 是一个开源的分布式版本控制系统,不必服务器端软件支持。
概念
工作区
项目目录
版本库
是在工作区中的一个隐藏的 .git
目录,在该目录中保存了和版本相关的数据
暂存区
暂时保存版本信息的区域,是在 .git
目录中的 index
文件
安装
全局配置
$ git config --global user.name 用户名称
$ git config --global user.email 用户邮箱
使用
- 在工作空间中打开
git bash
窗口,初始化创建空的版本库:
$ git init
执行结束后,会在工作空间中创建出 .git
的隐藏目录
- 在工作空间中实现编码,在完成一个功能之后,可本地提交版本库
- 使用
git status
查看版本库状态:
$ git status
- 使用
git add
添加暂存区:
$ git add filename....
# 如:
$ git add src/index.html
$ git add src/css/common.css src/css/index.css
$ git add .
$ git add -A
- 提交本地版本库:
$ git commit -m 'flag: message'
在提交版本库填写信息前,通常添加前缀标记:
chore: 表示搭建项目架构
feat: 新特性,新功能
fix: 修复 bug
doc: 编写文档
test: 测试
refactor: 项目的重构
- 可以在工作空间中创建
.gitignore
文件,该文件中定义的是版本管理时忽略的资源:
$ touch .gitignore # 创建 .gitignore 文件
$ vi .gitignore # 编辑 .gitignore 文件
说明:在 vi 编辑器界面中,按 I
键接收输入,如果输入完毕后保存并退出,可以先按 Esc
,然后输入 :wq
回车后保存退出。
- 可以使用
git log
查看版本库的提交日志信息:
$ git log
分支管理
- 创建分支
$ git branch <branch-name>
# 如:
$ git branch dev
- 查看分支
$ git branch
- 切换分支
$ git checkout <branch-name>
# 如:
$ git checkout dev
- 创建并切换分支
$ git checkout -b <branch-name>
- 删除分支
$ git branch -d <branch-name>
- 合并分支
$ git merge <branch-name> # 将指定分支内容合并到当前分支
远程中央仓库
可以将本地使用 git 管理的仓库提交到一台远程服务器上保存,可与其他用户共享仓库资源
-
gitlab - 一般公司自己搭建 git 服务器时使用
注册并登录账号
以 gitee.com 为例
ssh key 配置
- 在
git bash
中生成本地的 ssh 公私钥密钥对:
$ ssh-keygen
生成成功后,在用户目录下会生成 .ssh
的目录,该目录中有两个文件:id_rsa
(私钥)、id_rsa.pub
(公钥)。可以将 id_rsa.pub
文件中最最后的邮箱地址修改为自己的邮箱
- 复制
id_rsa.pub
公钥文件中的所有内容 - 进入 gitee.com 中的个人账户:个人头像 --> 设置 --> 侧边导航菜单中 “ssh 公钥” --> 粘贴已复制的
id_rsa.pub
文件内容 --> 确定 --> 验证密码 --> 添加成功 - 可使用如下命令,测试是否能够连接成功:
$ ssh -T git@gitee.com
看到类似如下提示,说明已配置成功:
Hi 小明! You've successfully authenticated, but GITEE.COM does not provide shell access.
创建远程中央仓库
在 gitee.com 个人账户中,先创建空白的版本仓库
将本地仓库与远程中央仓库关联
$ git remote add <name> <repo.url>
# 如
$ git remote add origin git@gitee.com:mobiletrain/h5-2107-js.git
对同一个名称的添加只能执行一次,如果再次执行,会报错,如:
fatal: remote origin already exists.
如果有报错,可执行 git remote remove <name>
来删除名称对应的关联:
$ git remote remove <name>
# 如
$ git remote remove origin
将本地版本库推送到远程
$ git push <remote-name> <branch-name>
# 如:
$ git push origin master
将gitee的代码拷贝回来
$ git reflog // 检查上传的目录
出现如下代码:
6129ebb (HEAD -> master, origin/master) HEAD@{0}: commit: gulp 的安装
$ git reset --hard 6129ebb
流程
进入公司后,分配工位、电脑等
进入操作系统中安装开发环境:NodeJS、Git、VSCode(或其它的开发工具)
配置基本的环境内容,如:npm 包资源镜像、git 全局配置、ssh-key 配置、vscode 中扩展程序安装…
开发时使用 Git 的流程:
- 本地没有项目源代码时,下载远程中央仓库中的代码
$ git clone <repo.url>
如果本地存在项目的源代码,可更新为远程中央仓库中的最新版本的代码:
$ git pull origin master
- 进入工作空间中,完成任务编码
- 在完成一个功能并通过测试后,提交本地版本库:
$ git status # 查看版本库状态
$ git add <filename...> # 添加到暂存区
$ git commit -m 'flag: message' # 提交本地版本库
- 将本地版本库推送到远程中央仓库
$ git push origin master