一、版本管理的简单说明
1. 版本控制的目的
- 可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,修改可追踪
- 多人协作开发
2.版本控制系统分类
本地版本管理
相比复制不同的文件,标记时间备份,它采用某种简单的数据库来记录文件的历次更新差异。并不能够协作开发。
集中式版本管理
集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)。 这类系统,诸如 CVS、Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本
优点
- 管理员管理开发者权限方便
- 可以一定程度上看到项目中其他人在做什么
缺点
- 如果管理服务器宕机,谁都无法提交更新,也就无法协同工作
- 如果中心数据库所在的磁盘发生损坏,所有版本历史将消失
分布式版本管理
于是分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。 在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。没有网络的时候,依旧可以本地提交,有网时再push。
二、git简单说明
起源
诞生于2005年,起源于对linux代码管理的需求
特点
- 直接记录快照,而非差异比较
- 近乎所有操作都是本地执行
三种状态
- 文件三种状态:已提交(committed)、已修改(modified)和已暂存(staged)
- 由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
-
基本的 Git 工作流程如下:
在工作目录中修改文件。
暂存文件,将文件的快照放入暂存区域。
提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
三、git操作说明
获取代码方式
通过https方式获取
-
通过ssh方式获取
操作流程:
打开Git Bash
-
生成私钥和公钥
ssh-keygen -t rsa -C "name@host"
然后直接点击 enter enter enter
-
查看id_rsa.pub上传公钥到服务器
默认在 C:\Users\用户名\.ssh\id_rsa.pub
获取代码
-
http
git clone http://ip/path/test.git
-
ssh
git clone git@ip:path/test.git git clone ssh://git@ip:path/test.git
常用操作
-
创建新仓库
git init
-
添加与提交
git add <filename>
git commit -m "代码提交信息"
-
推送改动
git push origin master
-
添加远程仓库
git remote add origin <server>