Git基本概述
作者:老板丶鱼丸粗面 发布时间:2023-12-07 14:13:28
大致介绍
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,可以有效、高速的处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
Git的诞生
Git是由Linus编写的,这个名字应该不会陌生,著名的Linux就是Linus的杰作!(厉害的人干啥都厉害),虽然Linus创建了Linux,但是Linux的壮大是由全世界热心的参与者共同努力的结果,而在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!
可想而知Linus的心有多累,但在2002年Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统
但是由于某种原因BitMover公司在2005年收回了Linux社区的免费使用权。然后Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!(厉害的人干啥都厉害)
Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
版本控制
◆ 本地版本控制系统
◆ 集中化的版本控制
◆ 分布式的版本控制
本地版本控制系统
大多的本地版本控制系统都是采用某种简单的数据库来记录文件的历次更新差异
集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
集中式版本控制系统有几个明显的缺点:
1、如果遇到中央服务器故障,那么谁都无法进行提交,也就无法进行协同工作
2、必须联网进行操作
分布式的版本控制系统( Distributed Version Control System,简称 DVCS )
客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了
来源:http://www.cnblogs.com/qqandfqr/p/6345037.html
猜你喜欢
- 今天在群(CSS森林:30247792)里讨论了border的样式写法,发现border的写法还真是灵活,做了一下总结,希望对大家有用:bo
- 1 作用注意此处Tensorflow版本是2.0+。由于本人是Pytorch用户,对Tensorflow不是很熟悉,在读到用tf写的代码时就
- 介绍init 方法通常用在初始化一个类实例时候,但其实它不是实例化一个类的时候第一个被调用 的方法。当使用 Student(id, name
- 适配器模式Adapter Pattern是什么适配器模式是一种结构型模式,它可以将一个类的接口转换成客户端所期望的接口,从而使原本不兼容的类
- JavaScript 代码一般最常见的语法格式就是定义函数 function xxx(){/*code...*/},经常有这样的一大堆函数定
- 自定义模板403<!DOCTYPE html><html lang="en"><head&
- 一、描述在利用django做网络开发的时候我们会遇到一个问题就是,我们建立了多张数据表,但是多张数据表中的内容是不一样的,但是之间有着联系比
- 前言这篇博客针对《Python OpenCV识别行人入口进出人数统计》编写代码,功能包括了入口行人识别,人数统计。代码整洁,规则,易读。应用
- 本文实例讲述了Python socket套接字实现C/S模式远程命令执行功能。分享给大家供大家参考,具体如下:一. 前言要求: 使用pyth
- 前言在字典中查找某一个值的时候,若key不存在就会返回一个keyerror错误而不是一个默认值,如果想要返回一个默认值可以使用default
- 本文实例讲述了php实现的CSS更新类及其用法,非常实用。分享给大家供大家参考。具体如下:CSSUpdate.class.php类文件如下:
- 【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 ⚠️ 直线检测概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- 对Python中正则表达式的理解,主要就是对符号的理解,本文即对Python中常用的正则表达式符号进行简析。其主要的符号有:.默认匹配一个字
- 博主最近试在服务器上进行spark编程,因此,在开始编程作业之前,要先搭建一个便利的编程环境,这样才能做到舒心地开发。本文主要有以下内容:1
- windows下载ziplinux下载tar下载地址:https://www.elastic.co/downloads/elasticsea
- 安装pillow(python的图形界面库)第一种方法在Dos界面输入pip install pillow(但是不知为何总是失败);搞了好几
- 下面是最终代码 (windows下实现的) # -*- coding: cp936 -*- import os path = 'D:
- 很多序列的方法字符串同样适用,但是,字符串是不可变的,所以一些试图改变字符串的方法是不可用的1 字符串格式化1)用元组或者字典格式化字符串f
- ThinkPHP支持多种php模板引擎,可以根据个人需要加以配置。下面我们以Smarty模板引擎为例,给大家说说具体的操作流程!首先去Sma
- 兼容当前HTML/XHTML文档是否有DTD声明:以下为程序代码:var xtop = document.documentElement.s