小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。
前言
在我们工作中,经常有上传文档、更新文档、更新脚本的场景。那么在执行更新这个动作之前,我们通常会保存一份原来的文档,然后再用新的内容覆盖原有的内容。
以上做法,大家是不是感到步骤冗余,如果缺少一个步骤都会让我们的工作产生极大的麻烦
因此,不管是文档更新还是代码脚本,我们都应该要做好版本控制
那么,什么是版本控制?
版本控制:是一个专门记录内容操作,可以便于溯源更改修订内容的系统
目前,版本控制主要分为3种类型:
- 本地版本控制系统:RCS
- 集中化版本控制系统:SVN
- 分布式版本控制系统:GIT
本期,我们将学习主流的分布式版本控制系统常用的方法,Let'S go~
1. 版本控制区别
我们上述知道了三种类型版本控制系统,来看看他们具体的细节吧
- 本地版本控制系统
本地版本控制系统采用拷贝整个目录,重命名来备份文档。该方法快速简单的特点。
缺点也比较明显,随着项目增多,管理的难度以日俱增
- 集中化版本控制系统
集中化版本控制系统可以轻松解决团队协作开发的问题。专门使用服务器去集中化管理文档版本的数据,每个客户端可以根据需求从服务器重拉取下载代码
但是由于所有的数据都放在服务器上,如果服气器宕机,不仅存在服务器的数据会有丢失的风险,也会造成所有人没有办法做手上的工作,降低团队效率。
- 分布式版本控制系统
分布式版本控制系统让每一台主机都备份一份文件,包括完整的历史记录。这样一来,就可以解决集中化版本控制系统服务器宕机数据丢失的风险。
目前分布式版本控制系统主要有Git、Mercurial等
git与svn对比:
- git 是分布式,svn 则是集中化
- git 把内容按元数据存储,而svn则是按文件存储
- git 对分支进行区分,而svn则不区分
- git 没有全局版本好,而svn支持的
- git 存储的内容按照哈希算法,保证数据的完整性,而svn存储文件则没有采取
2. 什么是git?
git 是目前主流的分布式版本控制系统(DVCS),不仅提取用户本地最新版的修改记录,同时会也会把整个仓库的文件镜像包括完整的历史记录保存起来。
git 工作形式:
git 工作形式如同我们古人那样,用绳去记录事情(结绳记事)
- 结绳记事
- 对比 git 工作形式
git操作如同结绳记事那样,用指令来打结和接绳结
3. git 工作流程
我们来看看 git 实际的工作流程,如下图:
-
git 文档上传流程:
- 首先工作区的文档通过 git add 命令添加到本地暂存区里,这时候文档的状态为已修改(modified)
- 再使用git commit 命令提交到本地的仓库区,文档的状态为已提交(committed)
- 最后使用 git push 命令将文档推到远程仓库中进行保存
-
git 文档下载
- 假设我们工作区没有文件,我们可以直接使用 git clone 命令从远程服务器完全拷贝文档(会创建新目录)
- 如果我们工作区已经存在文档,我们可以使用 git pull 更新我们本地文档内容
4. git 安装与配置
Windows系统安装配置步骤:
- 首先在官网下载git工具:gitforwindows.org/
-
按照指引进行安装
-
配置ssh key
windos按出开始菜单,输入cmd按确认进入命令行界面,命令行输入以下命令,一直敲击enter完成ssh key的生成。
ssh-keygen -t rsa -C "[email protected]"
复制代码
备注:
-
生成了两个key,分别为id_rsa和id_rsa.pub,位于C\用户\你的电脑用户名.ssh目录下
-
后续需要某个项目的代码权限,可以把自己的公钥id_rsa.pub命名成 域账号.pub(例如:juejin.pub),key发给你的LD去开权限
-
git配置
git bash中执行如下两个命令
git config --global user.name juejin域账号)
git config --global user.email [email protected](邮箱)
复制代码
MAC系统安装配置步骤:
- 首先在MAC终端输入git,是否有如下打印
-
如果有,则本机已经安装了git
-
如果没有安装,则需要使用homebrew安装git
brew install git
复制代码
- 配置git
git config --global user.name "juejin"
git config --global user.email "[email protected]"
复制代码
- 配置ssh
ssh-keygen -t rsa -C "[email protected]"
复制代码
- 打开生成的key
终端查看id_rsa.pub文件
open .ssh/id_rsa.pub
复制代码
- 我们得到公钥,就可以在GitHub等仓库平台进行配置远程仓库
5. log规范
上传代码log要求:
1、log中不要存在auto merge
2、推送到远端的分支不要有交叉
3、一次提交对应一个修改项,切勿一对多
总结
本期,我们对版本控制工具Git,进行认识和了解。对Git工作形式和原理进行学习。
同时,我们在Windows系统或者MAc系统上,对git工具进行安装和配置。
以上是本期内容,欢迎大佬们点赞评论,下期见~