版本控制
版本控制是一种在开发过程中用于管理我们对文件、目录或工程内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
- 实现跨区域多人协同开发
- 追踪和记录一个或多个文件的历史记录
- 组织和保护源代码和文档
- 统计工作量
- 并行开发、提高开发效率
- 跟踪记录整个软件的开发过程
- 减轻开发人员的负担,节省时间,降低人为错误
是一种用于管理多人协同开发项目的技术。
常见版本控制工具
Git
SVN(SubVersion)
CVS(Concurrent Versions System)
VSS(Micorosoft Visual SourceSafe)
TFS(Team Foundation Server)
Visual Studio Online
……
版本控制分类
- 本地版本控制:记录文件每次的更新,可以对每个版本做一个快照,适合个人使用。
- 集中式版本控制 SVN:所有的版本数据都保存在一台服务器上,协同开发者从服务器上同步更新或上传自己的修改。
- 分布式版本控制 Git:所有版本信息同步到本地的每个用户。可以离线在本地提交,联网时push到相应服务器或其他用户。每个用户保存的都是所有的版本数据,每个人都拥有全部代码。
Git与SVN的区别
Git是分布式版本控制,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网。协同时如果两个人同时修改了A文件,会把各自的修改推送给对方,就可以互相看到对方的修改了。
SVN是集中式版本控制,版本库集中放在中央服务器,工作的时候需要从中央服务器先获取最新的版本,完成工作后需要将自己的代码推送至中央服务器。集中式版本控制必须要联网才能工作。
Git下载及安装
参考博客:个人博客第2篇——Git 2.25.0详细安装步骤 - 知乎 (zhihu.com)(若有侵权联系我删除)
若下载速度慢可以去镜像下载:CNPM Binaries Mirror (npmmirror.com)
Git配置
1 | $ git config -l # 查看环境配置 |
查看不同级别的配置文件:
1 | # 查看系统配置 |
Git相关配置文件保存在本机:
- Git\etc\gitconfig Git安装目录下 保存的是system级别配置
- C:\User\user\ .gitconfig 该文件保存的是用户级别的配置
配置用户名和邮箱:
1 | git config --global user.name "testname" |
也可直接修改配置文件。
Git基本理论
工作区域
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository/Git Directory)。如果再加上远程的git仓库(Remote Directory)就可以分为四个工作区域,文件在这四个工作区域的转换关系如下:
- Working Directory:工作目录,平时本地存放代码的地方
- Stage/Index:暂存区,用于临时存放改动,事实上它只是一个文件,保存即将提交的文件列表信息
- History/Repository:仓库区或本地仓库,安全存放数据的位置,这里有提交的所有版本的数据。
- Remote:远程仓库,托管代码的服务器。
工作流程
git工作流程一般是这样:
- 在工作目录中添加、修改文件;
- 将需要进行版本管理的文件放入暂存区域(add);
- 将暂存区域的文件提交到git仓库(commit);
- 将本地仓库的文件push到远程仓库(push)。
因此,git管理的文件有三种状态:已修改(modified)、已暂存(staged)、已提交(commited)
Git项目搭建
工作目录(workspace)一般是希望Git帮助管理的文件夹,可以是项目目录,也可以是一个空目录,建议不要有中文。日常常用下图6个命令。
本地仓库搭建
创建本地仓库的方法有两种:创建全新的仓库、克隆远程仓库。
- 创建全新仓库
在工作目录打开gitbash或cd进入工作目录,执行git init
命令,执行完成后工作目录会出现一个.git的隐藏文件夹,里面存了关于版本等所有信息。
- 克隆远程仓库
将远程服务器上的仓库完全镜像一份到本地,包括他的整个代码历史(版本信息)。