Git快速入门(一)·Git软件的安装以及GitHubDesktop客户端的安装

目录

1.  概述

1.1  版本控制介绍

1.1.1  集中式版本控制

1.1.2  分布式版本控制

1.1.3  多人协作开发

2.  安装Git

3.  安装GitHubDesktop客户端


1.  概述

        Git 是一个免费的、开源的分布式版本控制系统。它能够快速高效地处理从小型到大型的各种项目。Git 具有易于学习、占地面积小、性能极快的特点。它拥有廉价的本地库、方便的暂存区域和多个工作流分支等特性,其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

1.1  版本控制介绍

        版本控制系统会详细记录文件的每一次修改。例如,在软件开发中,每次程序员对代码文件进行修改并保存时,版本控制系统(如 Git)会记录下修改的时间、修改人以及具体的修改内容。

        对于文档编写也同样适用,比如一个团队共同撰写一份技术报告,每次有人对报告内容进行更改,系统都会进行记录。

1.1.1  集中式版本控制

(1)原理

        集中式版本控制系统有一个单一的中央服务器来存储所有版本的数据。所有的用户都从这个中央服务器获取文件的最新版本,并且在完成修改后将更新提交回中央服务器。

        例如,Subversion (SVN) 就是一种典型的集中式版本控制系统。在一个使用 SVN 的软件开发项目中,所有的开发人员都连接到同一个 SVN 服务器。当他们开始一天的工作时,他们从服务器上获取最新的代码版本。在进行了代码修改后,他们将修改后的代码提交回服务器。

(2)优点

管理集中:管理员可以很方便地在中央服务器上进行权限管理和版本管理。例如,可以轻松地控制哪些用户有权限访问和修改特定的文件或目录。

易于学习和使用:对于新手来说,集中式版本控制的概念相对简单,操作流程也较为直观。比如只需要从服务器下载、修改后再上传回服务器即可。

(3)缺点

单点故障:如果中央服务器出现故障,如硬盘损坏、网络问题等,整个团队可能无法进行版本控制操作。例如,如果服务器宕机,开发人员就无法提交他们的工作成果,甚至无法获取之前的版本。

网络依赖:开发人员必须连接到中央服务器才能进行操作。如果网络连接不稳定或者处于离线状态,工作效率会受到很大影响。例如,远程办公的开发人员在网络不好的情况下可能无法正常工作。

1.1.2  分布式版本控制

(1)原理

        分布式版本控制系统中,每个用户的本地计算机都有一个完整的版本库副本。用户可以在本地进行版本控制操作,如提交、分支、合并等,然后在需要的时候与其他用户的版本库进行同步。

        例如,Git 就是最流行的分布式版本控制系统。在一个使用 Git 的项目中,每个开发人员在自己的电脑上都有一个完整的项目仓库。他们可以在本地进行开发、创建分支、合并分支等操作,而不需要实时连接到网络。当他们准备好时,可以将本地的修改推送到远程仓库(如 GitHub、GitLab 等)与其他开发人员共享。

(2)优点

离线操作:开发人员可以在本地进行版本控制操作,无需网络连接。这对于经常需要在没有网络的环境下工作的人来说非常方便。例如,开发人员在飞机上也可以继续进行代码的开发和版本控制。

数据冗余和备份:由于每个用户都有一个完整的版本库副本,数据有一定的冗余性,这在一定程度上起到了备份的作用。即使中央远程仓库出现问题,用户本地的仓库仍然保存着完整的数据。

(3)缺点

学习曲线较陡:分布式版本控制的概念相对复杂,操作命令也更多。对于初学者来说,可能需要花费更多的时间来学习和掌握。例如,Git 的一些操作(如分支合并、冲突解决等)对于新手可能会有一定难度。

仓库占用空间大:因为每个用户本地都有完整的版本库,当项目规模较大时,本地仓库可能会占用较大的磁盘空间。例如,一个大型项目的 Git 仓库可能会占用几个 GB 甚至更多的磁盘空间。

1.1.3  多人协作开发

(1)原理

        在多人协作开发中,多个开发人员共同参与一个项目的开发。他们通过版本控制系统来协调各自的工作,避免冲突,确保项目的顺利进行。
        例如,在一个软件公司中,一个项目可能有前端开发人员、后端开发人员、测试人员等多个角色。他们都在同一个项目的代码库上进行工作。通过版本控制系统,他们可以获取最新的代码,进行自己的开发工作,然后将自己的工作成果合并到主代码流中。

(2)优点

提高工作效率:通过分工协作,不同的人员可以专注于自己擅长的领域,加快项目的开发进度。例如,前端开发人员专注于界面设计,后端开发人员专注于服务器端逻辑,从而提高整体开发效率。

代码质量提升:多人对代码进行审查和修改,可以发现更多的问题,提高代码的质量。例如,在代码合并时,其他开发人员可以对提交的代码进行审查,提出改进建议。

(3)缺点

沟通成本高:多人协作需要大量的沟通来确保对项目的理解一致。如果沟通不畅,可能会导致工作重复、方向错误等问题。例如,如果前端和后端开发人员对接口的定义没有沟通清楚,可能会导致开发出来的模块无法对接。

代码冲突:当多个开发人员同时修改了同一部分代码时,可能会出现代码冲突。解决这些冲突需要花费时间和精力。例如,两个开发人员同时修改了一个函数的参数,在合并代码时就需要协调解决这个冲突。

2.  安装Git

        这个有的可能打不开网站链接,所以直接下载到百度网盘,直接提取下载即可:

链接: https://pan.baidu.com/s/1Ob_QtRXIsjS_UrxkLDQNyA?pwd=2dcg 提取码: 2dcg 

        双击进行安装: 

        更改自己的路径,继续点击“Next”:

        这个界面是告诉我们会安装哪些组件,需要多大内存,可以直接点击“Next”:

       继续点击“Next”:

        继续点击“Next”:

        继续点击“Next”:

         继续点击“Next”:

         继续点击“Next”:

         继续点击“Next”:

         继续点击“Next”:

         继续点击“Next”:

         继续点击“Next”:

         继续点击“Next”:

         继续点击“Next”:

        点击“Install”:

         点击“Finish”:

        可以看到:

        后续想要打开可以鼠标右键,点击更多选项,可以看到如下,点击Open Git Bash here:

         就能重新打开上述界面。

3.  安装GitHubDesktop客户端

        找到Git的官网:

Git官网链接:Git

        找到Downloads点击:

        找到GUI Clients点击:

        找到GitHub Desktop客户端点击下载:

        跳转到如下界面,点击箭头位置:

        点击下载:

        下载完成:

 

链接: https://pan.baidu.com/s/1GfGVmTtt6AJ07Djuus3aXg?pwd=jb4i 提取码: jb4i 

        点击安装:

        注册登录一个账号即可。

GitHub_时光の尘的博客-CSDN博客

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

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

相关文章

数据挖掘——神经网络分类

神经网络分类 神经网络分类人工神经网络多层人工神经网络 误差反向传播(BP)网络后向传播算法 神经网络分类 人工神经网络 人工神经网络主要由大量的神经元以及它们之间的有向连接构成。包含三个方面: 神经元的激活规则 主要是指神经元输入…

PDF文件提示-文档无法打印-的解决办法

背景信息 下载了几个签名的PDF文件,想要打印纸质版,结果打印时 Adobe Acrobat Reader 提示【文档无法打印】: 解决办法 网上的方案是使用老版本的PDF阅读器, 因为无法打印只是一个标识而已。 PDF文件不能打印的五种解决方案-zhihu 这些方…

docker容器间基于bridge双向通信

前面介绍了通过link实现容器间的单向通信: docker容器间基于Link单向通信-CSDN博客 情景概述 通过前面已经知道了设置link来达到容器间通过容器名称双向通信,那是不是可以通过每个容器都设置link来达到双向通信,这种方式实现起来太麻烦&…

前端如何判断多个请求完毕

在前端开发中,经常会遇到需要同时发起多个异步请求,并在所有请求都完成后再进行下一步操作的情况。 这里有几个常用的方法来实现这一需求: 使用 Promise.all() Promise.all() 方法接收一个 Promise 对象的数组作为参数,当所有的…

云备份项目--服务端编写

文章目录 7. 数据管理模块7.1 如何设计7.2 完整的类 8. 热点管理8.1 如何设计8.2 完整的类 9. 业务处理模块9.1 如何设计9.2 完整的类9.3 测试9.3.1 测试展示功能 完整的代码–gitee链接 7. 数据管理模块 TODO: 读写锁?普通锁? 7.1 如何设计 需要管理…

exam0-试卷整理

exam0-试卷整理 2010,2013是梦开始的地方,大概率会出原题的 2010 2013 2015 大题 manchester RIP更新 说出ISO与TCP/IP模型的相同点和不同点(8分) 相似: 两者都有层次,网络专业人员都需要知道二者&a…

ACL---访问控制列表---策略

在路由器流量流入或者流出的接口上匹配流量,之后执行设定好的动作---permit(允许)deny(拒绝) 1.访问控制: 在路由器流量流入或者流出的接口上匹配流量,之后执行设定好的动作---permit&#xf…

element输入框及表单元素自定义前缀

如图所示&#xff1a; <el-input class"custom-input" placeholder"请输入" prefix-icon"prefix" v-model"form.name" clearable></el-input> :deep(.custom-input) {.el-input__icon {display: inline-block;width: 40…

C#调用Lua

目录 xLua导入 打包工具导入 单例基类导入与AB包管理器导入 Lua解析器 文件加载与重定向 Lua解析器管理器 全局变量获取 全局函数获取 对于无参数无返回值 对于有参数有返回值 对于多返回值 对于变长参数 完整代码 List与Dictionary映射Table 类映射Table 接口映射…

渗透测试-非寻常漏洞案例

声明 本文章所分享内容仅用于网络安全技术讨论&#xff0c;切勿用于违法途径&#xff0c;所有渗透都需获取授权&#xff0c;违者后果自行承担&#xff0c;与本号及作者无关&#xff0c;请谨记守法. 此文章不允许未经授权转发至除先知社区以外的其它平台&#xff01;&#xff0…

node.js之---事件循环机制

事件循环机制 Node.js 事件循环机制&#xff08;Event Loop&#xff09;是其核心特性之一&#xff0c;它使得 Node.js 能够高效地处理大量并发的 I/O 操作。Node.js 基于 非阻塞 I/O&#xff0c;使用事件驱动的模型来实现异步编程。事件循环是 Node.js 实现异步编程的基础&…

基于深度学习的视觉检测小项目(二) 环境和框架搭建

一、环境和框架要求 SAM的环境要求&#xff1a; Python>3.7 PyTorch>1.7 torchvision>0.8 YOLO V8的环境要求&#xff1a;YOLO集成在ultralytics库中&#xff0c;ultralytics库的环境要求&#xff1a; Python>3.7 PyTorch>1.10.0 1、确定pytorch版本…

MySQL 06 章——多表查询

多表查询&#xff0c;也称为关联查询&#xff0c;是指两个表或多个表一起完成查询操作 前提条件&#xff0c;这些一起查询的表之间是有关系的&#xff08;一对一、一对多&#xff09;&#xff0c;它们之间一定是有关联字段的。这个关联字段可能建立了外键&#xff0c;也可能没…

Web前端基础知识(五)

盒子模型 盒子模型是CSS中一种常用于布局的基本概念。描述了 文档中的每个元素都可以看成是一个矩形的盒子&#xff0c;包含了内容、内边距、文本边距、外边距。 ---------------------------------------------------------------------------------------------------------…

使用Clion在ubuntu上进行交叉编译,并在Linux上远程编译五子棋

目录 1.工具以及概念介绍 &#xff08;1&#xff09;Clion软件简介 &#xff08;2&#xff09;交叉编译 &#xff08;3&#xff09;远程编译 2.操作原理 3.详细操作步骤 &#xff08;1&#xff09;配置Clion与虚拟机ubuntu的ssh连接 CLion远程开发Ubuntu&#xff0c;并显…

我的博客年度之旅:感恩、成长与展望

目录 感恩有你 技能满点 新年新征程 嘿&#xff0c;各位技术大佬、数码潮咖还有屏幕前超爱学习的小伙伴们&#xff01;当新年的钟声即将敲响&#xff0c;我们站在时光的交汇点上&#xff0c;回首过往&#xff0c;满心感慨&#xff1b;展望未来&#xff0c;豪情满怀。过去的这…

STM32-笔记22-sg90舵机

一、接线 二、实验实现 动手让 SG90 每秒转动一下&#xff0c;0 -> 20 -> 40 -> 100 -> 180 如此循环。 舵机接A6 复制18-呼吸灯&#xff0c;重命名24-sg90舵机 把PWM重命名sg90 打开项目文件 在魔术棒和品上把PWM都去掉&#xff0c;加载sg90文件夹 加载之后…

大模型理解力探讨:LeCun认为,大模型(LLM)并不真正理解这个世界,尤其是物理世界,它们只是“本能般地吐出一个又一个单词”。而Hinton则持相反观点。

大模型理解力探讨&#xff1a;从LeCun与Hinton的观点看LLM的“理解”本质 关键词&#xff1a; #大模型理解力 Large Model Understanding #LLM Large Language Model #特征交互 Feature Interaction #视频学习 Video Learning #语言学习 Language Learning 具体实例与推演 考…

Docker图形化界面工具Portainer最佳实践

前言 安装Portainer 实践-基于Portainer安装redis-sentinel部署 Spring Boot集成Redis Sentinel 前言 本篇文章笔者推荐一个笔者最常用的docker图形化管理工具——Portainer。 安装Portainer 编写docker-compose文件 Portainer部署的步骤比较简单&#xff0c;我们还是以…

OCR图片中文字识别(Tess4j)

文章目录 Tess4J下载 tessdataJava 使用Tess4j 的 demo Tess4J Tess4J 是 Tesseract OCR 引擎的 Java 封装库&#xff0c;它让 Java 项目更轻松地实现 OCR&#xff08;光学字符识别&#xff09;功能。 下载 tessdata 下载地址&#xff1a;https://github.com/tesseract-ocr/…