一、集中式与分布式的区别
- 除了git还有svn、cvs这样的版本控制系统,它们的区别在于一个是分布式一个是集中式
- 集中式就是svn和csv这样的版本控制系统,分布式是git
- 区别在于集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持。
- 分布式的区别在于,每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人。
- 像集中式它们都有一个主版本号,所有的版本迭代都以这个版本号为主,而分布式因为每个客户端都是服务器,git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的,同时也有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。
二、git
1、释义
- 专业解释秘籍:传送门
- Git特点:
速度
简单的设计
对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
完全分布式
有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量) - git有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。 - 这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
2、部署
老样子,实验目录
yum install -y git
初始化版本库
.git目录是git跟踪管理版本库的,没事别瞎溜达
[root@servera ~/demo] git init
Initialized empty Git repository in /root/demo/.git/
[root@servera ~/demo] ls .git/
branches config description HEAD hooks info objects refs
3、用法
- 获取 Git 仓库通常有两种方式:
将尚未进行版本控制的本地目录转换为 Git 仓库。
从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone
[root@server1 ~/demo] touch README.md
[root@server1 ~/demo] ls
README.md
[root@server1 ~/demo] git status #检查当前文件状态
# On branch master
#
# Initial commit
#
# Untracked files: