【小知识】git 工具入门一,认识git工具
前言
在我们工作中,经常有上传文档、更新文档、更新脚本的场景。那么在执行更新这个动作之前,我们通常会保存一份原来的文档,然后再用新的内容覆盖原有的内容。
以上做法,大家是不是感到步骤冗余,如果缺少一个步骤都会让我们的工作产生极大的麻烦
因此,不管是文档更新还是代码脚本,我们都应该要做好版本控制
那么,什么是版本控制?
版本控制:是一个专门记录内容操作,可以便于溯源更改修订内容的系统
目前,版本控制主要分为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 "your_email@example.com" 复制代码
备注:
生成了两个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 juejin@emple.com(邮箱) 复制代码
MAC系统安装配置步骤:
首先在MAC终端输入git,是否有如下打印
如果有,则本机已经安装了git
如果没有安装,则需要使用homebrew安装git
brew install git 复制代码
配置git
git config --global user.name "juejin" git config --global user.email "juejin@emple.com" 复制代码
配置ssh
ssh-keygen -t rsa -C "juejin@emple.com" 复制代码
打开生成的key
终端查看id_rsa.pub文件
open .ssh/id_rsa.pub 复制代码
我们得到公钥,就可以在GitHub等仓库平台进行配置远程仓库
5. log规范
上传代码log要求:
1、log中不要存在auto merge
2、推送到远端的分支不要有交叉
3、一次提交对应一个修改项,切勿一对多
作者:盆友圈的小可爱
链接:https://juejin.cn/post/7018026231790567461