版本控制系统
简介
- Version Control System,简称为VCS,版本控制系统是一种记录一个或多个文件的内容变化,以便将来查阅特定版本的内容变化情况的系统。
- 简单来说,就是用来保存文件内容变更记录的系统,可以将文件回退到过去某个时间点的状态。
作用
- 查阅文件的修改记录,如∶修改者、修改时间、修改的文件内容等·对比不同版本中文件的变化细节
- 将文件回溯到之前的某个状态
版本控制系统的种类︰
- 本地版本控制系统
版本库存放在本地磁盘上
缺点:无法协同开发。 - 集中化版本控制系统
版本库集中存放在中央服务器上,所有参与人员都连接到该服务器,实现协同开发
缺点∶自己电脑上没有版本库,本地无法进行版本管理,必须连接中央服务器才能进行版本控制,如果中央服务器宕机,则无法工作
代表应用:Subversion ( SVN) - 分布式版本控制系统
每个人的电脑上都是一个完整的版本库,在本地就可以进行版本管理,无需连网但一般都会通过远程仓库来交换版本的修改
代表应用:Git
Git工作流程
基本流程:
- 使用git命令将远程仓库上的文件克隆到本地仓库中
- 从本地仓库中检出文件到工作区(一般都自动完成)
- 将新创建的文件添加到暂存区
- 将暂存区中的内容提交到本地仓库
- 将本地仓库中的内容推送到远程仓库上
安装Git
初始化
git config --global user.name ""
git config --global user.email ""
Git常用命令
命令 | 作用 | 备注 |
---|---|---|
git init | 初始化本地Git仓库(项目) | 会在当前目录中创建一个.git目录,用于记录所有的版本变更信息 |
git status | 查看本地仓储的文件状态 | |
git add文件路径 | 交由git托管行匹配 | 将文件添加到跟踪列表(暂存区),-A或–all或.表示添加所有文件,也可以使用*进行匹配 |
git commit | 将跟踪列表中的文件提交到本地仓库 | -m指定提交日志 |
git log | 查看提交日志 | |
git reset --hard | 回退到指定版本 | HEAD表示当前的版本,版本id |
git reflog | 查看所有操作记录 | 包括被回退的版本id、reset操作等 |
建立本地仓库
git init # 在该目录下建立本地仓库,此时生成.git文件
git文件四种状态
Git文件的四种状态:.
- untracked
未跟踪,表示文件不受git管理,一般新建的文件处于该状态Untracked files.- staged
已暂存,表示已对修改的文件做了标记,使之包含在下次要提交的文件跟踪列表中changes to bec ommitted- committed
已提交,表示文件已经被提交到本地仓库- modified
已修改,表示文件内容已被修改,但没有做标记changes not staged for commit
忽略文件
可以在git仓库的根目录下添加一个名为 .gitignore的文件,用于指定需要被git忽略的文件或文件夹
注意:
- 文件名必须是.gitignore。
- 文件必须在项目的根目录下
- 每行指定一个忽略文件
- 以#开头的行表示注释
远程仓库
一般有GitHub和码云gitee
步骤:
- 注册账号、创建仓库
- 添加远程仓库的地址
git remote add origin https://gitee.com/tangyang8942/study.git
- 将本地仓库的提交记录推送到远程仓库的master分支
git push origin master
- 拉取远端master分支的更新记录到本地
git pull origin master
命令 | 作用 | 备注 |
---|---|---|
git remote add仓库别名远程仓库地址 | 添加远程仓库地址 | 仓库别名可以自定义,一般默认使用origin |
git remote -v | 查看远程仓库信息 | fetch抓取、push推送 |
git remote rm名称 | 删除远程仓库地址 | |
git push名称分支 | 将本地仓库指定分支推送到 | 一般为master主分支,默认推送到远程仓库的后远程仓库同名分支,没有则新建 |
git pull名称分支 | 拉取远程仓库指定分支中新的数据到本地 | 会与本地仓库进行merge合并(更新操作,非第一次 |
git clone远程仓库地址 | 克隆远程仓库的项目到本地 | 用于从远端下载git项目(第一次) |
分支Branch
-
分支就是版本上的更新迭代,默认只有master主分支
-
可以从主分支上分离出其他的分支,各分支间互不干扰
命令 | 作用 | 备注 |
---|---|---|
git branch | 显示所有分支 | 默认只有master分支 |
git branch 分支名 | 创建分支 | |
git checkout分支名 | 切换分支 |