【第一节】Git的简介和安装

news2024/12/20 2:28:02

目录

一、git的介绍

二、git 的安装

2.1 Linux 平台安装

2.2 源码安装

2.3 Windows 平台安装

2.4 Mac 平台安装

2.5 Git 配置

2.5.1 配置文件

2.5.2 用户信息配置

2.5.3 文本编辑器配置

2.5.4 差异分析工具配置

2.5.5 查看配置信息


一、git的介绍

        Git 是一种开源的分布式版本控制系统,旨在高效地管理各种规模的项目,无论是小型还是大型。

        Git 最初由 Linus Torvalds 开发,目的是为了更好地管理 Linux 内核的开发工作,它是一个开源的版本控制工具。

        与传统的版本控制工具如 CVS 和 Subversion 不同,Git 采用了分布式版本库的设计,不需要依赖服务器端软件的支持。

        Git 不仅仅是一个版本控制系统,它还具备内容管理系统(CMS)和工作管理系统的功能。

        对于有 SVN 使用经验的用户来说,需要进行一定的思维转变,以适应 Git 所引入的新概念和特性。

Git 与 SVN 的主要区别包括:

1. **分布式 vs 集中式**:Git 是分布式的版本控制系统,而 SVN 是集中式的。这是 Git 与非分布式版本控制系统(如 SVN、CVS)之间最显著的区别。

2. **数据存储方式**:Git 以元数据的形式存储内容,而 SVN 则按文件存储。在 SVN 中,所有的元信息都隐藏在类似 `.svn` 或 `.cvs` 的文件夹中。

3. **分支管理**:Git 的分支管理与 SVN 不同。在 SVN 中,分支只是一个普通的目录,而在 Git 中,分支管理更加灵活和高效。

4. **版本号**:Git 没有全局版本号,而 SVN 则有。这是 Git 与 SVN 相比的一个显著差异。

5. **内容完整性**:Git 在内容完整性方面优于 SVN。Git 使用 SHA-1 哈希算法来确保代码内容的完整性,从而在遇到磁盘故障或网络问题时,能够更好地保护版本库的安全。

二、git 的安装

        在开始使用 Git 之前,我们需要先安装它。Git 支持多种操作系统,包括 Linux/Unix、Solaris、Mac 和 Windows。

        Git 的安装包可以在以下地址下载:http://git-scm.com/downloads

2.1 Linux 平台安装

        Git 的运行依赖于一些库,如 curl、zlib、openssl、expat 和 libiconv。因此,在安装 Git 之前,需要先安装这些依赖库。

        在支持 yum 的系统(如 Fedora)或支持 apt-get 的系统(如 Debian 系列)上,可以使用以下命令进行安装:

#### Debian/Ubuntu

在 Debian/Ubuntu 系统上,可以使用以下命令安装 Git:

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev

$ apt-get install git

$ git --version
git version 1.8.1.2

#### Centos/RedHat

在 Centos/RedHat 系统上,可以使用以下命令安装 Git:

$ yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

$ yum -y install git-core

$ git --version
git version 1.7.1

2.2 源码安装

        你也可以从官网下载 Git 的源码包进行安装。最新源码包的下载地址为:https://git-scm.com/download

在安装源码包之前,需要先安装相应的依赖库:

#### Centos/RedHat

$ yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

#### Debian/Ubuntu

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev

然后解压并安装源码包:

$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

2.3 Windows 平台安装

        在 Windows 平台上,安装 Git 非常简单。可以通过 msysGit 项目提供的安装包进行安装。下载地址为:https://gitforwindows.org/

        安装完成后,你可以使用命令行的 Git 工具(已自带 ssh 客户端),也可以使用图形界面的 Git 项目管理工具。

        在开始菜单中找到“Git”->“Git Bash”,打开 Git 命令窗口,即可进行 Git 操作。

2.4 Mac 平台安装

        在 Mac 平台上,最简单的安装方式是使用图形化的 Git 安装工具。下载地址为:http://sourceforge.net/projects/git-osx-installer/

2.5 Git 配置

        Git 提供了一个名为 `git config` 的工具,用于配置或读取相应的工作环境变量。这些环境变量决定了 Git 在各个环节的工作方式和行为。

2.5.1 配置文件

Git 的配置文件可以存放在以下三个地方:

1. `/etc/gitconfig` 文件:适用于系统中所有用户的配置。使用 `git config --system` 选项时,读写的就是这个文件。
2. `~/.gitconfig` 文件:仅适用于当前用户的配置。使用 `git config --global` 选项时,读写的就是这个文件。
3. 当前项目的 `.git/config` 文件:仅适用于当前项目的配置。每个级别的配置都会覆盖上层的相同配置,因此 `.git/config` 中的配置会覆盖 `/etc/gitconfig` 中的同名变量。

在 Windows 系统上,Git 会查找用户主目录下的 `.gitconfig` 文件。主目录通常是 `C:\Documents and Settings\$USER`。

2.5.2 用户信息配置

        配置个人的用户名称和电子邮件地址:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

        使用 `--global` 选项后,更改的配置文件将位于用户主目录下,以后所有项目都会默认使用这里配置的用户信息。

        如果需要在特定项目中使用不同的用户信息,只需去掉 `--global` 选项重新配置即可,新的设定将保存在当前项目的 `.git/config` 文件中。

2.5.3 文本编辑器配置

        设置 Git 默认使用的文本编辑器,通常是 Vi 或 Vim。如果偏好其他编辑器(如 Emacs),可以重新设置:

$ git config --global core.editor emacs

2.5.4 差异分析工具配置

        在解决合并冲突时,可以指定使用哪种差异分析工具。例如,使用 `vimdiff`:

$ git config --global merge.tool vimdiff

        Git 支持多种合并工具,如 kdiff3、tkdiff、meld、xxdiff、emerge、vimdiff、gvimdiff、ecmerge 和 opendiff 等。

2.5.5 查看配置信息

        要检查已有的配置信息,可以使用 `git config --list` 命令:

$ git config --list
http.postbuffer=2M
user.name=runoob
user.email=test@runoob.com

        有时会看到重复的变量名,这表明它们来自不同的配置文件(如 `/etc/gitconfig` 和 `~/.gitconfig`),Git 最终采用最后一个配置。

        你也可以直接查阅某个环境变量的设定,例如:

$ git config user.name
runoob

这些配置信息也可以在 `~/.gitconfig` 或 `/etc/gitconfig` 文件中查看。

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

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

相关文章

奇怪的知识又增加了,ESP32下的Lisp编程:ULisp--Lisp for microcontrollers

ESP32下有MicroPython,那么我就在想,有Lisp语言支持吗?答案是果然有!有ULisp,专门为MCU设计的Lisp! 网址:uLisp - Lisp for microcontrollers 介绍:用于微控制器的 Lisp 适用于 Ar…

决策树的生成与剪枝

决策树的生成与剪枝 决策树的生成生成决策树的过程决策树的生成算法 决策树的剪枝决策树的损失函数决策树的剪枝算法 代码 决策树的生成 生成决策树的过程 为了方便分析描述,我们对上节课中的训练样本进行编号,每个样本加一个ID值,如图所示…

51c嵌入式~单片机~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/12362395 一、不同的电平信号的MCU怎么通信? 下面这个“电平转换”电路,理解后令人心情愉快。电路设计其实也可以很有趣。 先说一说这个电路的用途:当两个MCU在不同的工作电压下工作&a…

Kerberos实验

kdc:192.168.72.163 客户端(机器账户win10):192.168.72.159 用户:administrator 抓包:开机登录win10,使用administrator域用户凭据登录。 生成 Kerberos 解密文件 抓取 krbtgt 用户和 win1…

AI一键分析小红书对标账号‼️

宝子们,AI小助手近期发现了一款宝藏AI工具,拥有对标账号AI分析功能,只需10秒就能全面掌握对标账号的运营情况,并且可以根据分析结果提供创作方向和灵感,轻松助力1:1复刻起号! 功能亮点: &…

大腾智能CAD:国产云原生三维设计新选择

在快速发展的工业设计领域,CAD软件已成为不可或缺的核心工具。它通过强大的建模、分析、优化等功能,不仅显著提升了设计效率与精度,还促进了设计思维的创新与拓展,为产品从概念构想到实体制造的全过程提供了强有力的技术支持。然而…

VMware虚拟机 Ubuntu没有共享文件夹的问题

在虚拟机的Ubuntu系统中,共享文件目录存放在 mnt/hgfs 下面,但是我安装完系统并添加共享文件后发现,在mnt下连/hgfs目录都没有。 注意:使用共享文件目录需要已安装VMtools工具。 添加共享文件目录 一:在超级用户下 可…

OpenGL ES 01 渲染一个四边形

项目架构 着色器封装 vertex #version 300 es // 接收顶点数据 layout (location 0) in vec3 aPos; // 位置变量的属性位置值为0 layout (location 1) in vec4 aColors; // 位置变量的属性位置值为1 out vec4 vertexColor; // 为片段着色器指定一个颜色输出void main() {gl…

leetcode二叉搜索树部分笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 二叉搜索树 1. 二叉搜索树的最小绝对差2. 二叉搜索树中第 K 小的元素3. 验证二叉搜索树 1. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中…

推送本地仓库到远程git仓库

目录 推送本地仓库到远程git仓库1.1修改本地仓库用户名1.2 push 命令1.3远程分支查看 推送本地仓库到远程git仓库 删除之前的仓库中的所有内容,从新建库,同时创建一个 A.txt 文件 清空原有的远程仓库内容,重新创建一个新的仓库,…

暂停一下,给Next.js项目配置一下ESLint(Next+tailwind项目)

前提 之前开自己的GitHub项目,想着不是团队项目,偷懒没有配置eslint,后面发现还是不行。eslint的存在可以帮助我们规范代码格式,同时 ctrl s保存立即调整代码格式是真的很爽。 除此之外,团队使用eslint也是好处颇多…

基于微信小程序的小区疫情防控ssm+论文源码调试讲解

第2章 程序开发技术 2.1 Mysql数据库 为了更容易理解Mysql数据库,接下来就对其具备的主要特征进行描述。 (1)首选Mysql数据库也是为了节省开发资金,因为网络上对Mysql的源码都已进行了公开展示,开发者根据程序开发需…

Win11安装安卓子系统WSA

文章目录 简介一、启用Hyper-V二、安装WSA三、安装APKAPK商店参考文献 简介 WSA:Windows Subsystem For Android 一、启用Hyper-V 控制面板 → 程序和功能 → 启用或关闭 Windows 功能 → 勾选 Hyper-V 二、安装WSA 进入 Microsoft Store,下拉框改为 …

[面试题]--索引用了什么数据结构?有什么特点?

答:使用了B树: 时间复杂度:O(logN),可以有效控制树高 B树特点: 1.叶子节点之间有相互链接的作用,会指向下一个相近的兄弟节点。 MySQL在组织叶子节点使用的是双向链表 2.非叶子节点的值都保存在叶子节点当中 MySQL非叶…

Element plus 下拉框组件选中一个选项后显示的是 value 而不是 label

最近刚进行 Vue3 Element plus 项目实践&#xff0c;在进行表单二次封装的时候&#xff0c;表单元素 select 下拉框组件选中一个选项后显示的是 value 而不是 label&#xff0c;下面上代码&#xff1a; 原来的写法&#xff1a; <el-selectv-if"v.type select"…

bean创建源码

去字节面试&#xff0c;直接让人出门左拐&#xff1a;Bean 生命周期都不知道&#xff01; spring启动创建bean流程 下面就接上了 bean生命周期 doGetBean Object sharedInstance this.getSingleton(beanName); sharedInstance this.getSingleton(beanName, new ObjectF…

【C++】- 掌握STL List类:带你探索双向链表的魅力

文章目录 前言&#xff1a;一.list的介绍及使用1. list的介绍2. list的使用2.1 list的构造2.2 list iterator的使用2.3 list capacity2.4 list element access2.5 list modifiers2.6 list的迭代器失效 二.list的模拟实现1. list的节点2. list的成员变量3.list迭代器相关问题3.1…

泷羽sec学习打卡-brupsuite8伪造IP和爬虫审计

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-Brup-FaskIP 伪造IP配置环境brupsuite导入配置1、扩展中先配置python环境2、安…

挑战一个月基本掌握C++(第五天)了解运算符,循环,判断

一 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符&#xff0c;并提供了以下类型的运算符&#xff1a; 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 1.1 算术运算符 假设变量 A 的值为 10&#xff0c;变量 B 的值为…