版本控制系统简介
本地版本控制系统
我们可以记录下文件的每一次修改,如下图所示,文件被修改后,记录下了3个版本(version1, version2, version3),这样我们通过版本控制系统(软件)便可以恢复到任意版本。
集中化的版本控制系统
它通过单一的集中管理的服务器,保存所有文件的修订版本,协同工作的开发者都通过客户端连到这台服务器,取出最新的文件或者提交更新。其代表为SVN,如下图所示。
分布式版本控制系统
分布式版本控制系统,意味着不需要中央服务器,每个协同开发者都拥有一个完整的版本库,因此,任何协同开发者用的服务器发生故障,可用其它协同开发者的本地仓库进行恢复。
git简介
Git特点:
- 速度 • 简单的设计
- 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
- 完全分布式 • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
- 自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的 目标。
- 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。
Git必看秘籍:https://git-scm.com/book/zh/v2
- 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。
Git 有三种状态
已提交(committed)、已修改(modified) 和 已暂存(staged)
- 已修改表示修改了文件,但还没保存到数据库中。
- 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交表示数据已经安全地保存在本地数据库中。
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录
安装git
[root@vm1 ~]# yum install git -y /安装git
[root@vm1 ~]# mkdir demo
[root@vm1 ~]# cd demo/
[root@vm1 demo]# ls
[root@vm1 demo]# git init 初始化版本库
[root@vm1 demo]# l. .git目录是git跟踪管理版本库的
git使用
-
检查当前文件状态
[root@vm1 demo]# git status -
跟踪新文件
[root@vm1 demo]# git add readme.md
- 用户信息
[root@vm1 demo]# git config --global user.email “root@westos.com”
[root@vm1 demo]# git config --global user.name “xsm” - 提交更新
[root@vm1 demo]# git commit -m “add readme.md”
删除并恢复
- 第一种
删除文件
[root@vm1 demo]# rm -f test.txt
撤消对文件的修改
- 第二种
[root@vm1 demo]# git rm test.txt /移除文件
[root@vm1 demo]# git reset HEAD test.txt /取消暂存的文件
[root@vm1 demo]# git checkout -- test.txt /撤消对文件的修改
-查看提交历史
- 版本回退
当删除文件并已经提交时,可用版本回退进行找回
删除之前所建立的两个文件并提交,
[root@vm1 demo]# rm -f test.txt
[root@vm1 demo]# git commit -m “delete test.txt”
[root@vm1 demo]# git rm readme.md
[root@vm1 demo]# git commit -m “delete readme.md”
[root@vm1 demo]# git reflog
恢复: 我们将斑本回退到建立第二个文件时的版本,我们发现两个文件都恢复了回来/。