Git概述

2023-08-20 21:01:30

目录

一、什么是Git

二、什么是版本控制系统

三、Git和SVN对比

SVN集中式

SVN优缺点

Git分布式

Git优缺点

四、Git工作流程

四个工作区域

工作流程

五、Git下载与安装


一、什么是Git

很多人都知道,林纳斯·托瓦兹在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。

Git是一种代码托管技术。在开发中,Git是一种代码托管技术,很多代码托管平台也是基于Git来实现的。Git可以帮我们做到很多的事情,比如代码的版本控制,分支管理等。

注意:我们可以把Git理解成是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。正是因为有了Git的存在,现在很多工作才可以变得相对轻松。

二、什么是版本控制系统

你可以把一个版本控制系统(缩写VCS)理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的快照。当你需要查看一个之前的快照(称之为“版本” )时,版本控制系统可以显示出当前版本与上一个版本之间的所有改动的细节。

想法:

因为我们怕在原来的基础改错了东西,没法恢复,所以,我们可能会有多个毕业论文的文件。而我们写代码的时候本身就是「多人协作」的,修改是无法避免的,我们不希望有多个文件的产生,又希望能够记录每次更改的内容

这个软件用起来就应该像这个样子,能记录每次文件的改动:

版本

文件名

用户

说明

日期

1.0

git.doc

张三

删除了软件访问限制

7/15 10:38

2.0

git.doc

李四

增加了登录次数限制

8/12 18:19

3.0

git.doc

王五

财务调整了薪资结构

9/23 9:13

4.0

git.doc

老六

取消了会员制

12/25 16:18

注意:结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

三、Git和SVN对比

SVN集中式

集中式版本控制系统需要找一个服务器作为大本营,所有的代码都需要提交到服务器上进行统一的管理。当你需要对代码进行改动时,需要先从服务器上下载一份拷贝,修改完成之后,还需要上传回服务器。

SVN优缺点

优点:

  1. 管理员也可以轻松掌控每个开发者的权限。
  2. 代码一致性非常高。
  3. 适合开发人数不多的项目开发。

缺点:

  1. 服务器压力太大,数据库容量暴增。
  2. 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。

Git分布式

在分布式版本控制系统中,大家都拥有一个完整的版本库,不需要联网也可以提交修改,所以中心服务器就显得不那么重要了。

注意:

Git记录版本历史只关心文件数据的整体是否发生变化。Git 不保存文件内容前后变化的差异数据。

Git优缺点

优点:

  1. 适合分布式开发,强调个体。
  2. 公共服务器压力和数据量都不会太大。
  3. 速度快、灵活。
  4. 任意两个开发者之间可以很容易的解决冲突。
  5. 离线工作。

缺点:

  1. 学习周期相对而言比较长。
  2. 不符合常规思维。
  3. 易学难精

四、Git工作流程

四个工作区域

Workspace: 工作区,就是你平时存放项目代码的地方

Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

工作流程

Git的工作流程一般是这样的:

在工作目录中添加、修改文件;

将需要进行版本管理的文件放入暂存区域;

将暂存区域的文件提交到git仓库。

五、Git下载与安装

注意:在Windows操作系统中安装 Git之前,先从官方网站(Git)下载合适的Git版本。

下载window版

下载64位软件包 

安装Git也是很简单,直接点击next即可

更多推荐

【C++】C++ 语言对 C 语言的加强 ③ ( 类型检查增强 - 所有函数和变量必须有类型 | 新增 bool 类型 - bool 类型简介 )

文章目录一、类型检查增强-所有函数和变量必须有类型1、C语言函数类型-函数参数与返回值类型可以不确定2、C++语言函数类型-函数参数与返回值类型必须写明二、新增bool类型-bool类型简介一、类型检查增强-所有函数和变量必须有类型1、C语言函数类型-函数参数与返回值类型可以不确定在C语言中,函数的返回值类型在定义时可

使用GPT训练中秋古诗写作讲解

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。🎉欢迎👍点赞✍评论⭐收藏文章目录🚀一、背景🚀二、功能实现🔎2.1准备数据集🔎2.2安装环境和库🔎2.

typescript typeof操作符

tstypeof操作符简介在TypeScript中,typeof是一个操作符,用于获取一个值的类型。它可以与任何值一起使用,并返回一个描述该值类型的字符串。typeof操作符在TypeScript中的用法与JavaScript中的用法非常相似。如下,众所周知,在js中提供了typeof操作符用来在js中获取数据的类型t

多线程模式下的单例创建

Java单例DouleCheck方式/***doublecheck*如果没有synchronized和二次checkNull在单线程中没有任何问题。*synchronized保证只能有一个线程进入方法体中,其他的线程会进入等待队列。*[_instance=newJavaTest()]流程为:new写入缓存->更新到主存

Python进阶学习分享之循环设计

range()在Python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列的下标。之前我们已经使用过range()来控制for循环。现在,我们继续开发range的功能,以实现下标对循环的控制:S='abcdefghijk'foriinrange(0,len(S),2):printS[i]在该

黑盒测试的优缺点(文档+视频讲解)

黑盒测试是一种软件测试方法,它基于对软件系统整体的分析和测试。相比白盒测试,黑盒测试更注重测试的结果和表现,而不是关注代码内部的实现和问题。在本文中,我们将探讨黑盒测试的优点和缺点。同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取软

HarmonyOS应用开发Web组件基本属性应用和事件

一、Web组件概述Web组件用于在应用程序中显示Web页面内容,为开发者提供页面加载、页面交互、页面调试等能力。页面加载:Web组件提供基础的前端页面加载的能力,包括加载网络页面、本地页面、Html格式文本数据。页面交互:Web组件提供丰富的页面交互的方式,包括:设置前端页面深色模式,新窗口中加载页面,位置权限管理,C

cms之wordpress主题安装

WordPress主题安装教程的方法有两种,分为在线安装和上传安装,下面是主题详细安装方法的步骤。后台在线安装主题从后台的主题界面在线安装主题是最方便的WordPress主题安装方式。方法如下:1在WordPress后台,转到外观→主题2单击“添加”按钮以访问WordPress主题目录。3.继续寻找所需的主题。您可以浏

WPF样式

样式是组织和重用格式化选项的重要工具。不是使用重复的标记填充XAML,以便设置外边距、内边距、颜色以及字体等细节,而是创建一系列封装所有这些细节的样式,然后在需要之处通过属性来应用样式。样式基础样式是可应用与元素的属性值集合。WPF样式系统与HTML标记中的层叠样式表(CSS)标准担当类似的角色。与CSS类似,通过WP

强化学习从基础到进阶-案例与实践[4]:深度Q网络-DQN、double DQN、经验回放、rainbow、分布式DQN

【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现专栏详细介绍:【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现对于深度强化学习这块规划为:基础单智能算法教学(g

分布式运用之rsync远程同步

一、rsync的相关知识1.1rsync简介rsync(RemoteSync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。rsync的官方站点的网址是rsync.samba.or

热文推荐