微信公众号:PHP在线

Git 究竟是怎样的一个系统呢?为什么在SVN作为版本控制工具已经非常流行的时候,还有Git这样一个版本控制工具呢?Git和SVN的区别在哪儿呢?Git优势又在哪呢?下面PHP程序员雷雪松带你一起详细的聊一下Git。

Git 是由Linux 的缔造者 Linus Torvalds开发出自己的版本系统,Linux 内核开源项目是由Git来作为版本管理工具管理的。这样一说是不是觉得Git肯定不能小觑。

Git 设计的时候是分布式版本控制系统,而SVN是集中化的版本控制系统。如果SVN服务器的发生故障,你就不能在使用版本控制,并且可能丢失所有历史更新记录的风险。Git所有操作都是本地执行,可以离线进行任何操作。而且Git可以用任何一个镜像出来的本地仓库恢复。因为每个用户克隆的操作都是对代码仓库的完整备份。

Git 对待数据更像是一个 快照流。而SVN则以文件变更列表的方式存储信息,将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。

Git 有三种状态:已修改(modified)、已暂存(staged)和已提交(committed)。已修改表示修改了文件,但还没保存到数据库中。已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。已提交表示数据已经安全的保存在本地数据库中。

Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。克隆仓库时,拷贝的就是这里的数据。工作目录是对项目的某个版本或者分支独立提取出来的内容。暂存区域是一个文件,保存了下次将提交的文件列表信息。

基本的 Git 工作流程如下:

1、在工作目录中修改文件。
2、暂存文件,将文件的快照放入暂存区域。
3、提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。

相信通过上面的讲解,大家对Git有个更好的认识,Git的优势总结一下,分布式设计,数据快照保存数据,很好的保证完整性以及高效分支管理。在PHP程序员雷雪松的博客中也有一篇专门介绍《Git常用命令详解》的文章,欢迎大家点击阅读。

git 命令详解_再次学习Git版本控制工具相关推荐

  1. wget命令详解_嵌入式学习之 Wget 命令详解

    Wget 命令详解 - 理想者1988 - 博客园​www.cnblogs.com 1.下载单个文件:ftp://ftp.denx.de/pub/u-boot/u-boot-2016.09.tar.b ...

  2. git 命令详解和Android Studio代码管理工具

    目录 前言 git命令上传项目 一.核心操作 二.解决冲突 三.情景举例 四.查看ssh密钥 五.克隆远程项目 六.回退某个操作 七.和远程分支建立关联 八.删除文件 九.远程仓储 十.多人协作 十一 ...

  3. GitHub使用教程详解(下)——Git的安装以及Git命令详解

    上一篇GitHub使用教程详解(上)--官网操作指南[翻译],是针对官网的guide进行了翻译,其实个人来说,我是很不喜欢那么操作的,又要等待页面加载,操作又慢!程序员嘛,还是直接敲入命令代码更迅速高 ...

  4. git命令详解( 四 )

    此篇为git命令详解的第四篇,话不多说,我们直接上知识点好吧 git Push 偏离的工作 gitPush: 此命令负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录.一旦 git ...

  5. java开发中常用的Git命令详解

    java开发中常用的Git命令详解(IDEA内如何操作) 一:写这篇文章的目的是什么? 二:使用场景在哪里? 1:当我们要使用idea去git仓库拉代码时,首先我们的idea得配置git工具 2:项目 ...

  6. git reset 命令详解(二)—— Git 学习笔记 08

    git reset 命令详解(二) 上一篇博文git reset 命令详解(一)讲了 git reset 命令的基本原理和用法,这篇博文谈一谈 git reset 的另一种用法--后面跟一个路径(或文 ...

  7. git reset 命令详解(一)—— Git 学习笔记 07

    git reset 命令详解(一) 简而言之,git reset 命令是用来将当前 branch 重置到另外一个 commit 的,这个动作可能同时影响到 index 以及 work director ...

  8. nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令

    点击上方"蓝字"关注我们吧! Liunx系统启动默认为字符界面,一般不会启用图像界面,所以对命令行的熟练程度能更加高效.便捷的管理Liunx服务器. 这节课向读者介绍Liunx系统 ...

  9. 【测试】linux FIO命令详解(一):磁盘IO测试工具 fio (并简要介绍iostat工具)

    目录 随看随用 FIO介绍 FIO 工具常用参数: fio工作参数可以写入配置文件 IO状态监控: Iostat介绍 与FIO相似的工具 fio测试脚本 提取iops和bw gunplot画图 Fio ...

最新文章

  1. Wireshark实验 - 入门
  2. CentOS6.8 编译安装LNMP
  3. ES和JS的区别,以及JavaScript的基本组成
  4. reactor与proactor模式
  5. Java程序设计学习笔记(一)
  6. 你知道出现“乱码”的原因是什么吗?(4)
  7. java编程思想学习(2):对象
  8. android 修改系统参数设置,2021-05-15 [RK3399][Android7.1] 调试笔记 ---显示参数动态设置接口...
  9. 成为一个优秀的前端工程师,其实你也可以!
  10. numpy拼接多维数组(numpy.concatenate命令详解)
  11. 关于mpvue 切换页面数据没清空
  12. JProfiler分析内存泄漏
  13. 初涉node.js做微信测试公众号一路填坑顺便发现个有趣的其他漏洞
  14. Mellanox IB卡介绍
  15. Switch Transformer模型解读-Introduction
  16. 019--python内置函数
  17. python macd底背离_MACD的“底背离”狠不狠?回测告诉你结果
  18. 【Tools】抓包工具——Charles(中名:花瓶)
  19. 服务器虚拟机化对应云计算的,服务器虚拟化与云计算
  20. JS实现答题上一题下一题

热门文章

  1. crm 一级菜单排序,二级菜单选中并且展开,非菜单权限的归属,权限粒度控制到按钮级别...
  2. 13、Spring Boot 2.x 多数据源配置
  3. Django的model中日期字段设置默认值的问题
  4. MVC架构设计——EF-Code First
  5. Pygame - Python游戏编程入门(1)
  6. iOS 开发者账号共用发布证书 (Distribution)问题
  7. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite...
  8. TSQL与PL/SQL的比较
  9. vue-cli 打包部署
  10. [pytorch、学习] - 5.4 池化层