Git介绍及安装

news2025/1/11 15:00:52

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章
⭐作者主页:@逐梦苍穹
⭐所属专栏:Git
⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正,一同进步😁

目录

  • 1、简介
  • 2、版本控制器的方式
    • 2.1、代表性工具
    • 2.2、Git和SVN的区别
    • 2.3、Git工作流程
  • 3、Git的安装

1、简介

Git是一个分布式版本控制系统,用于跟踪文件和项目的变化。它是由Linus Torvalds在2005年创建的,旨在管理Linux内核的开发。Git具有广泛的应用,不仅适用于大型项目,也适用于个人开发者和小团队。
下面是关于Git的一些重要概念和功能的详细介绍:

  1. 版本控制:Git可以追踪文件和项目的各个版本。每次提交更改时,Git都会记录变化的内容和作者,并生成一个唯一的标识符(commit hash)。这使得可以随时回溯和比较不同版本之间的差异。
  2. 分布式系统:Git是一个分布式版本控制系统,意味着每个开发者都可以拥有完整的代码仓库副本。这使得开发者可以在离线环境下进行工作,并且不依赖于集中式服务器。同时,每个副本都可以作为备份,提供了更好的安全性。
  3. 代码托管平台:Git通常与代码托管平台(如GitHub、GitLab和Bitbucket)一起使用。这些平台提供了集中式的代码仓库,开发者可以将本地的Git仓库与远程仓库进行同步,实现代码的共享和协作。
  4. 分支管理:Git鼓励使用分支来组织开发工作。分支是代码仓库的一个独立副本,可以独立进行开发和修改,而不会影响主分支(通常是master或main分支)。开发者可以创建新的分支来添加新功能或修复错误,然后将分支合并回主分支。
  5. 合并和解决冲突:当两个分支的修改冲突时,Git提供了合并和解决冲突的功能。合并将不同的分支合并为一个,而解决冲突是指当Git无法自动合并修改时,需要开发者手动编辑代码以解决冲突。
  6. 标签和里程碑:Git允许开发者为特定的提交或版本添加标签,以便于标识重要的里程碑和发布版本。标签可以帮助开发者快速找到特定版本的代码,并与其他开发者进行共享。
  7. 快照和轻量级分支:Git使用快照的方式保存文件和项目的状态。这意味着每次提交都会创建一个新的快照,而不是保存文件的差异。此外,Git的分支非常轻量级,创建和切换分支非常快速。
  8. 高效的性能:Git在设计上注重性能和效率。由于本地拥有完整的代码仓库,Git可以在本地执行许多操作,而无需与远程仓库进行频繁的通信。这使得Git在处理大型项目和大量文件时表现出色。

总结:Git是一个强大的分布式版本控制系统,它提供了版本控制、分支管理、合并解决冲突、标签等功能,使开发者能够更好地组织和协作开发项目。通过与代码托管平台结合使用,Git已成为当今软件开发中广泛使用的工具之一。

2、版本控制器的方式

版本控制系统(Version Control System,VCS)是一种用于记录和管理文件或项目的不同版本的软件工具。它可以追踪文件的变化、记录历史修改、协调多个开发者之间的工作以及恢复到特定版本。
以下是两种常见的版本控制系统方式的详细介绍:集中式版本控制系统(Centralized Version Control System,CVCS)和分布式版本控制系统(Distributed Version Control System,DVCS):

  1. 集中式版本控制系统(CVCS): 集中式版本控制系统的核心是一个中央服务器,该服务器存储了所有的文件和版本历史。开发者通过连接到中央服务器来访问文件并进行操作。常见的CVCS包括Subversion(SVN)和Perforce。在CVCS中,开发者需要从中央服务器检出(checkout)最新版本的文件,进行修改后再将修改后的版本提交(commit)到服务器。其他开发者可以从服务器更新(update)最新的版本,并在其副本上继续工作。优点:缺点:
    ○ 管理集中,有一份完整的版本历史记录。
    ○ 访问控制灵活,管理员可以对不同用户或团队设置权限。
    ○ 依赖中央服务器,网络连接中断时无法正常工作。
    ○ 需要频繁与服务器进行通信。
  2. 分布式版本控制系统(DVCS): 分布式版本控制系统与CVCS不同,每个开发者都拥有完整的代码仓库副本。每个副本都包含完整的历史记录和版本信息,可以独立工作并在需要时与其他副本同步。常见的DVCS包括Git、Mercurial和Bazaar。在DVCS中,开发者可以在本地进行版本控制操作,包括查看历史记录、创建分支、合并分支等。开发者之间可以通过推送(push)和拉取(pull)操作来共享和同步更改。优点:缺点:
    ○ 强大的分支管理,方便并行开发和实验性修改。
    ○ 本地操作快速,无需频繁与中央服务器通信。
    ○ 每个开发者需要存储完整的代码仓库,占用更多的磁盘空间。
    ○ 学习曲线较陡峭,相对于CVCS有一定的复杂性。
    总结: 版本控制系统是开发者进行代码管理和协作的重要工具。CVCS通过中央服务器协调多个开发者的工作,而DVCS则使每个开发者拥有完整的代码仓库,并通过推送和拉取操作实现共享和同步。具体选择哪种版本控制系统取决于项目的需求、团队的规模以及个人偏好。

2.1、代表性工具

CVCS(集中式版本控制系统)的代表性工具是Subversion(SVN)和Perforce。

  1. Subversion(SVN):Subversion是一个开源的集中式版本控制系统,它提供了一套命令行和图形化的工具来管理代码的版本。它使用中央服务器存储代码库,并通过检出(checkout)、提交(commit)和更新(update)等操作来管理文件的变化。Subversion具有良好的用户权限管理和分支合并功能。
  2. Perforce:Perforce是一个商业化的集中式版本控制系统,主要面向大型项目和团队。它提供了高度可扩展的中央服务器,支持大规模项目的版本控制和协作。Perforce具有强大的权限管理、分布式开发支持和复杂项目工作流的能力。

DVCS(分布式版本控制系统)的代表性工具是Git、Mercurial和Bazaar。

  1. Git:Git是一个开源的分布式版本控制系统,具有强大的分支管理、高效的性能和广泛的应用。Git在处理大型项目和大量文件时表现出色,提供了快速的本地操作和灵活的分布式协作能力。它在开源社区和工业界得到了广泛的应用和认可,成为目前最流行的版本控制系统之一。
  2. Mercurial:Mercurial是一个开源的分布式版本控制系统,类似于Git。它提供了简单易用的命令行和图形界面工具,具有良好的性能和可靠性。Mercurial在易学易用、Windows平台兼容性和简化工作流方面具有优势,并广泛用于小型和中型项目。
  3. Bazaar:Bazaar是一个开源的分布式版本控制系统,注重易用性和灵活性。它提供了简单的命令行界面和图形化工具,适用于个人开发者和小型团队。Bazaar支持各种工作流模型,并允许用户选择适合自己项目的开发方式。

这些工具代表了CVCS和DVCS中最为知名和广泛使用的版本控制系统,每个工具都有自己的特点和优势,开发者可以根据项目需求和个人喜好选择适合的版本控制系统。

2.2、Git和SVN的区别

特性GitSVN
类型分布式版本控制系统集中式版本控制系统
分支管理强大的分支管理和合并功能简单的分支管理和合并功能
本地操作快速,无需频繁与服务器通信需要频繁与服务器通信
协作方式多个开发者拥有完整的代码仓库副本开发者从中央服务器检出最新版本的文件
网络依赖不依赖网络连接需要网络连接
磁盘空间占用占用更多磁盘空间占用较少磁盘空间

在这里插入图片描述
在这里插入图片描述

2.3、Git工作流程

在这里插入图片描述
在这里插入图片描述

3、Git的安装

Git下载地址:https://git-scm.com/download
本专栏里的所有git相关操作都是在Git Bash中演示的,会用到一些基本的linux命令,在此提前列举:

  1. ls/ll 查看当前目录
  2. cat 查看文件内容
  3. touch 创建文件
  4. vi编辑器(使用vi编辑器是为了方便展示效果,在Windows系统可以记事本、editPlus、notPad++等其它编辑器)

在这里插入图片描述

在这里插入图片描述
下载完成后可以得到如下安装文件:
在这里插入图片描述
下面双击运行,然后一路默认,在任意文件夹下面鼠标右键,出现如下则表示安装成功:
  在这里插入图片描述
如果是win11,鼠标右键显示不完全,可以使用"按住Shift键再点击鼠标右键"的方法!!

启动成功如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/629793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通往AGI之路;首个自研全开源自然语言低代码 GPT 应用快速开发框架PromptAppGPT

🦉 AI新闻 🚀 商汤科技将发布元萝卜AI下棋机器人新品(围棋版) 摘要:商汤科技将于6月14日召开元萝卜AI下棋机器人新品发布会,预计会发布下棋机器人(围棋版)。这款AI下棋机器人融合了传统围棋文化和人工智能技术,拥有落…

论文解读:Segment Anything

Segment Anything 发表时间:2023 论文地址:https://arxiv.org/abs/2304.02643 项目地址:https://github.com/facebookresearch/segment-anything 介绍了Segment Anything(SA)项目:一个新的任务、模型集和…

ViT 论文逐段精读——B站up:跟李沐学AI讲解笔记

https://www.bilibili.com/video/BV15P4y137jb Vision Transformer 挑战了 CNN 在 CV 中绝对的统治地位。Vision Transformer 得出的结论是如果在足够多的数据上做预训练,在不依赖 CNN 的基础上,直接用自然语言上的 Transformer 也能 CV 问题解决得很好…

PotPlayer结合alist播放网盘视频

目录 1. PotPlayer的下载安装2. 新建专辑3. 测试播放视频总结 欢迎关注 『发现你走远了』 博客,持续更新中 欢迎关注 『发现你走远了』 博客,持续更新中 书接上文 AList挂载工具安装搭建使用教程,快速访问多个网盘的资源(保姆级图…

12-git-pycharm配置.ignore文件

pycharm配置.ignore文件 前言安装插件使用添加其他忽略文件 前言 在开发中经常需要配置提交git的忽略文件,本篇来学习下使用pycharm自动生成.ignore文件 安装插件 Files->setting->Plugins,搜索ignore 使用 右键项目根目录,新建.…

AI大模型私有化部署流程

私有化部署AI大模型需要一定的GPU支持,适合有一定经济实力的公司,今天和大家分享一下如何进行私有化部署,这涉及很专业的知识,包括硬件和软件环境、模型部署、API集成、测试验证等,这里只是初步讨论一下,希…

chatgpt赋能python:Python分词:从原理到实践

Python分词:从原理到实践 分词是自然语言处理中的关键步骤之一,它是指将一句话或一段文本分成若干个词语(token)并进行标注。Python作为一种非常流行的编程语言,具备强大的文本处理能力,而分词也是它的强项…

chatgpt赋能python:Python函数调用函数

Python函数调用函数 Python中的函数是一组可重用的代码,用于执行特定的任务。当我们需要在一个程序中执行类似的操作多次时,就可以定义一个函数来完成该操作,这样可以减少重复代码,使程序更加易读、易维护。 在Python中&#xf…

OpenCV实战——提取视频中的前景对象

OpenCV实战——提取视频中的前景对象 0. 前言1. 提取视频中的前景对象2. 混合高斯方法3. 完整代码相关链接 0. 前言 当固定摄像机观察场景时,背景基本保持不变。在这种情况下,我们真正感兴趣的目标是场景中的移动物体。为了提取这些前景物体&#xff0c…

关系数据模型

1.键的概念 超键:在一个关系中,能唯一标识元组的属性或属性集(可能存在多余的属性) 侯选建:如果一个属性集能唯一标识元组(超键),且又不含有多余的属性,那么这个属性集…

C#,码海拾贝(40)——求解“线性最小二乘问题”的“豪斯荷尔德Householder变换法”之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…

6月9日复盘总结|8H30min|7:30-7:50

7:20-8:10 乐词*93 【50min】 8:20-9:20 背书 【1h】 9:20-10:20 词汇笔记 【1h】 10:20-11:00 词汇笔记 【50min】 11:00-12:10 去上马吃饭啦 12:20-13:00 不背单词 【40min】 13:00-13:30 收作业 13:30-14:30 午休♨️ 14:40-15:59 不背单词 *1…

node.js的http模块

http模块 http协议:超文本传输协议&#xff08;互联网应用最广泛的协议之一&#xff09; http请求方法&#xff1a; get获取数据 post新增数据 put/patch更新数据 delete删除数据 head/options/connect/trace URL统一资源定位符&#xff0c;其本身也是一个字符串。 客户端与…

chatgpt赋能python:Python运算简介:从基础运算到高级应用

Python运算简介&#xff1a;从基础运算到高级应用 Python是一种优秀的编程语言&#xff0c;它能够进行各种运算&#xff0c;从简单的加减乘除到高级的科学计算和模拟。在这篇文章中&#xff0c;我们将介绍Python的各种运算方式&#xff0c;并向您展示如何使用它们来进行一些最…

chatgpt赋能python:Python怎么免费用的?

Python 怎么免费用的&#xff1f; Python 是一种高级编程语言&#xff0c;自带简洁优美的语法和强大的开发库。因此&#xff0c;它成为了各种应用程序、网站和服务的主要编程语言之一。如果你对编程语言有些了解&#xff0c;那么你应该知道 Python 很适合开发各类工具、脚本和…

SpringBoot整合MongDB

文章目录 1. MongoDB概述2. MongoDB安装3. MongoDB快速入门3.1 数据库以及表的操作3.2 新增数据3.3 更新数据3.4 删除数据3.5 查询数据3.6 索引3.7 执行计划 4、SpringBoot整合MongoDB4.1 环境搭建4.2 新增文档4.3 查询文档4.4 更新文档4.5 删除文档 人生哪能多如意&#xff0c…

黑马Redis视频教程高级篇(安装Canal)

目录 1、开启MySQL主从 1.1、开启binlog 1.2、设置用户权限 2、安装Canal 2.1、创建网络 2.3、安装Canal 1、开启MySQL主从 Canal是基于MySQL的主从同步功能&#xff0c;因此必须先开启MySQL的主从功能才可以。 这里以之前用Docker运行的mysql为例&#xff1a; 1.1、开…

chatgpt赋能python:如何将Python切换成中文界面

如何将Python切换成中文界面 Python 是一门非常受欢迎的编程语言&#xff0c;有着强大的编程能力和广泛的应用范围。一些朋友可能需要在中文环境下使用 Python&#xff0c;但是默认的 Python 界面是英文的&#xff0c;这给一些初学者带来了不便。本文将介绍如何切换 Python 的…

【操作系统】浅谈 Linux 中的中断机制

【操作系统】浅谈 Linux 中的中断机制 参考资料&#xff1a; [2015 SP] 北京大学 Principles of Operating System 操作系统原理 by 陈向群&#xff08;p7-p10&#xff09; 认认真真的聊聊中断 什么是软中断&#xff1f; 认认真真的聊聊"软"中断 操作系统-x86中断机…

安装nuxt3时一直报错 Error: Failed to download template from registry

一、这个错误提示表明&#xff0c;从GitHub仓库下载模板的请求失败&#xff0c;原因是无法解析raw.githubusercontent.com的地址。这可能是由于网络连接问题或DNS解析问题等原因引起的。 以下是一些可能解决此问题的步骤&#xff1a; 检查网络连接&#xff1a;确保您的网络连接…