版本控制系统
管理随时间变化的数据
SVN / GIT
Git
开源的分布式版本控制系统,可以在没有网络连接的情况下,本地实现版本管理,而无须服务端支持。
概念
- 工作区:实现编码时所在的工作目录(项目目录)
- 版本库:是在工作区中的一个隐藏的
.git
目录,该目录中保存了 git 管理版本数据时使用到的各项资源 - 暂存区:暂时保存需要提交版本的资源,在
.git
目录中,对应一个 index 文件。
使用
安装
全局配置
$ git config --global user.name <用户名称>
$ git config --global user.email <用户email地址>
# 如:
$ git config --global user.name xiaoming
$ git config --global user.email xiaoming@qq.com
全局配置用户身份信息,用于提交代码时标记用户信息
常用命令
创建仓库:
$ git init
初始化创建空白的版本库
管理仓库:
-
查看版本库状态:
$ git status
-
添加暂存区:
$ git add <file>...
<file>
指的是待添加到暂存区内文件的名称(包含路径),如果有多个文件,使用空格分隔- 可以使用
.
或-A
参数替换<file>
位置处内容,表示将当前库中未被跟踪的所有资源添加到暂存区
-
提交本地版本库
$ git commit -m 'message'
- -m 参数表示提交版本库时添加的描述信息(message),通常这些描述信息会添加一定的前缀:
feat
- 新功能fix
- 修复 bugrefactor
- 代码重构(没有修改功能,只是将代码实现重新修改了)chore
- 架构,搭建项目结构doc
- 编写文档test
- 测试- …
- -m 参数表示提交版本库时添加的描述信息(message),通常这些描述信息会添加一定的前缀:
-
查看版本日志:
$ git log
-
克隆远程中央仓库的代码到本地:
$ git clone 远程中央仓库地址
分支
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
默认在创建仓库后会自动创建 master 分支。
创建分支
$ git branch <branch-name>
创建的新分支是基于当前所在分支创建的,即新创建分支中的内容与当前分支内容一致。
列出所有分支
$ git branch
在查看所有分支时,分支名前的 *
表示当前所在分支
可以跟上 -r
参数,查看远程中央仓库中所有的分支情况
切换分支
$ git checkout <branch-name>
创建并切换到新分支
$ git checkout -b <branch-name>
这相当于是创建分支与切换分支两条命令的整合。
删除分支
$ git branch -d <branch-name>
合并分支
$ git merge <branch-name>
将指定名称的分支合并到当前分支中
远程中央仓库
gitee
注册账号
…
配置 SSH Key
配置了 ssh key,在本地连接远程中央仓库,向远程仓库中上传版本库,或从远程仓库中下载版本库时,无需每次都输入用户名与密码验证。
- 在本地命令行中执行:
$ ssh-keygen
执行时,直接回车,先不输入任何内容。
会默认在用户目录中创建 .ssh
目录,并在该目录中建立 id_rsa
(私钥文件) 与 id_rsa.pub
(公钥文件)两个文件
-
打开
id_rsa.pub
文件,复制文件内的所有文本(ctrl + a 然后 ctrl + c)。 -
登录进入码云账户,在顶部通栏右上角用户头像上,进入 “设置” 页面,在“设置”页面左侧导航菜单的 “安全设置”中,打开
ssh 公钥
页面,在页面下方的多行文本框中,粘贴刚才复制的公钥文件内容,点击“确定”保存公钥配置即可。 -
配置完毕后,可以使用如下命令验证是否配置成功:
$ ssh -T git@gitee.com
如果看到类似如下提示,则说明配置成功:
Hi 小明! You've successfully authenticated, but GITEE.COM does not provide shell access.
建立远程中央仓库
在创建远程中央仓库时,先创建空的版本仓库,即不选择在仓库中添加文件(复选框不勾选)
本地仓库关联远程中央仓库
执行如下命令:
$ git remote add 名称 仓库地址
# 如:
$ git remote add origin git@gitee.com:mobiletrain/h52105-javascript.git
将本地仓库代码上传到远程中央仓库
执行如下命令:
$ git push origin master
使用Git的流程
场景:进入公司,分配了电脑
- 安装 git 环境
- 全局配置 user.name、user.email
- 获取公司项目的 git 仓库网址,分配给你的 git 中央仓库账户(如果需要自己注册,一般会作说明)
- 进入远程中央仓库个人账户中,配置 ssh key
下载项目源代码,进行开发:
-
如果本地没有项目源代码,则克隆远程中央仓库的代码到本地:
$ git clone <repo.url>
如果本地已有项目源代码,则将远程中央仓库中最新的代码拉取(下载)到本地:
$ git pull origin master
-
在工作空间中实现编码
-
在完成一个功能并通过测试后,将工作空间中所作的修改提交到本地版本库:
$ git status $ git add -A $ git commit -m 'message'
-
一天工作任务结束,将本地版本库的代码推送到远程中央仓库中:
$ git push origin master