你可以不用Git,但不能不会Git(一)概述

news/2024/10/27 21:23:32/

目录

一.什么是Git

二.为什么要使用Git 

三.Git和SVN对比

四.Git工作流程

五.Git下载与安装 


一.什么是Git

Git历史 很多人都知道,林纳斯·托瓦兹在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。然后全世界的开源贡献者都将修改或实现的功能提交给林纳斯·托瓦兹,这样林纳斯·托瓦兹就得手动的去一个一个匹配需要改动的地方,所以他花了2个星期的时间用C写了Git。(呵呵,这就是大佬吧)

Git是什么?

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

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

二.为什么要使用Git 

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

想法:

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

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

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

三.Git和SVN对比

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的工作流程一般是这样的:

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域;
  3. 将暂存区域的文件提交到git仓库。

五.Git下载与安装 

官网:Git

 官网下载速度比较慢,所以我就直接从腾讯电脑管家里下了,我下的版本是2.39.0.2-64-bit。无脑安装即可,安装之后可以看到鼠标右键会出现相关快捷键,Git Gui Here和Git Bash Here。


http://www.ppmy.cn/news/9786.html

相关文章

缓冲区的深刻理解

代码&&现象 先来看一份代码 #include <stdio.h> #include <string.h> #include <unistd.h> int main() {//C Libraryprintf("hello printf\n");fprintf(stdout, "hello fprintf\n");const char *s1 "hello fwrite\n&quo…

网络安全之URL介绍

目录 网络安全之URL介绍 定义 资源&#xff1a; 组成部分 协议&#xff08;scheme&#xff09; 主机&#xff08;host&#xff09; 端口 路径&#xff08;path&#xff09; 查询参数&#xff08;parameter&#xff09; 锚点&#xff08;anchor&#xff09; URL…

【数组】leetcode59.螺旋矩阵II(C/C++/Java/Js)

leetcode59.螺旋矩阵II1 题目2 思路3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 JavaScript版本4 总结&#xff1a;1 题目 题源链接 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1…

uniapp中引入vant Weapp

Vant Weapp官&#xff1a;https://vant-contrib.gitee.io/vant-weapp/#/home 步骤一&#xff1a;下载vant组件插件 从github上下载该插件https://github.com/youzan/vant-weapp 只要这个dist文件夹&#xff0c;把dist重命名为vant&#xff1b; 步骤二&#xff1a; 与pages…

【C++】stack、queue和deque

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《吃透西嘎嘎》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;stack 的…

论 G1 收集器的架构和如何做到回收时间用户设定

目录G1 概念JVM的内存分代假设让用户设置应用的暂停时间G1 概念 G1其实是Garbage First的意思&#xff0c;它不是垃圾优先的意思&#xff0c;而是优先处理那些垃圾多的内存块的意思。 在大的理念上&#xff0c;它还是遵循JVM的内存分代假设。 JVM的内存分代假设 JVM的内存分代…

Go语言context包源码剖析

context包的作用 context包是在go1.7版本中引入到标准库中的 context可以用来在goroutine之间传递上下文信息&#xff0c;相同的context可以传递给运行在不同goroutine中的函数&#xff0c;上下文对于多个goroutine同时使用是安全的&#xff0c;context包定义了上下文类型&am…

【C语言】交换奇偶位和 offsetof 宏的实现

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《阿亮爱刷题》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;交换奇偶…