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

目录

一、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` 文件中查看。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库和SQL的基本概念

目录 定义数据分类非结构化数据:半结构化数据 :​ 结构化数据 : SQL(Structured Query Language)概念分类 关系模型常用的概念数据库管理概念理解 定义 数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。 数据库是长期储存在…

oneflow深度学习框架使用问题总结(Windows/Linux)

目录 1.简述 2.在Windows下使用Oneflow深度学习框架(错误记录,谨慎,官方不支持,需要WSL) 2.1安装Anaconda 2.1创建虚拟环境 2.2安装Pytorch 2.3安装Pycharm 2.4 安装Oneflow 3.在Linux下使用Oneflow深度学习框…

TypeScript 变量与常量

文章目录 一、变量声明(一)let 关键字(块级作用域)(二)var 关键字(函数级作用域,与 let 的区别)二、常量声明(一)const 关键字(不可重新赋值)一、变量声明 (一)let 关键字(块级作用域) 在 TypeScript 中,let 关键字用于声明变量,它所声明的变量具有块级作用…

【Go】-倒排索引的简单实现

目录 什么是倒排索引 定义 基本结构和原理 分词在倒排索引中的重要性 简单倒排索引的实现 接口定义 简单数据库的实现 倒排索引 正排索引 测试 总结 什么是倒排索引 定义 倒排索引(Inverted Index)是一种索引数据结构,它是文档检…

使用 Wireshark 和 Lua 脚本解析通讯报文

在复杂的网络环境中,Wireshark 凭借其强大的捕获和显示功能,成为协议分析不可或缺的工具。然而,面对众多未被内置支持的协议或需要扩展解析的场景,Lua 脚本的引入为Wireshark 提供了极大的灵活性和可扩展性。本文将详细介绍如何使…

黑马Java面试教程_P7_常见集合_P4_HashMap

系列博客目录 文章目录 系列博客目录4. HashMap相关面试题4.4 面试题-HashMap的put方法的具体流程 频54.4.1 hashMap常见属性4.4.2 源码分析 HashMap的构造函数面试文稿: 4.5 讲一讲HashMap的扩容机制 难3频4面试文稿: 4.6 面试题-hashMap的寻址算法 难4…

Netcat:网络中的瑞士军刀

免责声明:使用本教程或工具,用户必须遵守所有适用的法律和法规,并且用户应自行承担所有风险和责任。 文章目录 一、引言二、简述三、Netcat功能?四、参数选项五、Netcat 的常见功能六、高级用法多连接处理创建简单的代理 七、Netc…

这是一个vue3 + scss的数字滚动效果

介绍: 当数字变化时&#xff0c;只改变变化的数字位&#xff0c;其余的不变&#xff0c;可以递增、递减、骤变、负数也可以&#xff0c;但是样式要根据具体的项目需求去改&#xff1b; 效果1、增加数字&#xff1a; 效果2、减少数字&#xff1a; 使用方法&#xff1a; <te…

Pytest-Bdd vs Behave:选择最适合的 Python BDD 框架

Pytest-Bdd vs Behave&#xff1a;选择最适合的 Python BDD 框架 Pytest BDD vs Behave&#xff1a;选择最适合的 Python BDD 框架BDD 介绍Python BDD 框架列表Python BehavePytest BDDPytest BDD vs Behave&#xff1a;关键区别Pytest BDD vs Behave&#xff1a;最佳应用场景结…

【Unity3D】无限循环列表(扩展版)

基础版&#xff1a;【Unity技术分享】UGUI之ScrollRect优化_ugui scrollrect 优化-CSDN博客 using UnityEngine; using UnityEngine.UI; using System.Collections.Generic;public delegate void OnBaseLoopListItemCallback(GameObject cell, int index); public class BaseLo…

【Elasticsearch】使用阿里云 infererence API 及 semantic text 进行向量搜索

原作者&#xff1a;Elastic布道师 刘晓国 在之前的文章 “Elasticsearch 开放推理 API 新增阿里云 AI 搜索支持”&#xff0c;它详细描述了如何使用 Elastic inference API 来针对阿里的密集向量模型&#xff0c;稀疏向量模型&#xff0c; 重新排名及 completion 进行展示。在…

景联文科技:精准语音标注,驱动语音技术新发展

在人工智能迅速发展的今天&#xff0c;语音技术的应用已经渗透到我们生活的方方面面。从智能音箱、语音助手到自动语音识别系统&#xff0c;高质量的语音数据是这些应用成功的关键。景联文科技作为领先的AI数据服务提供商&#xff0c;专注于为客户提供高精度、高效的语音标注服…

windows免登录linux

windows 生成秘钥文件 ssh-keygen -t rsa 将公钥传送到服务器 scp C:\Users\xx/.ssh/id_rsa.pub xxxx:/home/ruoyi/id_rsa.pub linux 使用ssh-copy-id -i ~/.ssh/id_rsa.pub userhost 如果禁用root登录&#xff0c;先开启 vim /etc/ssh/sshd_config PermitRootLogin yes …

基于容器的云原生,让业务更自由地翱翔云端

无论是要构建一个应用或开发一个更庞大的解决方案&#xff0c;在技术选型时&#xff0c;技术的开放性和可移植性已经成为很多企业优先考虑的问题之一。毕竟没人希望自己未来的发展方向和成长速度被自己若干年前选择使用的某项技术所限制或拖累。 那么当你的业务已经上云&#x…

Visual Studio 使用 GitHub Copilot 协助调试

&#x1f380;&#x1f380;&#x1f380;【AI辅助编程系列】&#x1f380;&#x1f380;&#x1f380; Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

springboot限流注解

我们在工作中 有些接口访问量过大 为了保证服务的正常运行可以增加限流 第一步 引入aop和redis <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency…

MySQL多表查询时有哪些连接方式?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL多表查询时有哪些连接方式?】面试题。希望对大家有帮助&#xff1b; MySQL多表查询时有哪些连接方式? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MySQL 中进行多表查询时&#xff0c;常见的连接方式有以下…

Python | 虚拟环境01 - 什么是虚拟环境、它的由来

导言 python3真的不是安装了就完事&#xff0c;必须理解虚拟环境是什么才算是初步掌握python环境。 学习python3虚拟环境&#xff0c;建议参考B站教程。这位博主用了6个视频&#xff0c;每一个视频仅仅几分钟。居然把python3的虚拟环境讲明白了。 虚拟环境&#xff08;Virtual…

【已解决】在Visual Studio里将应用与Microsoft Store关联时提示网络异常

发布Windows应用时。在Visual Studio里点击"发布“&#xff0c;将应用与Microsoft Store关联时&#xff0c;一直提示网络错误。 查了一下论坛&#xff0c;发现之前也经常出现&#xff0c;但我是第一次遇到。 不能就这样一直被卡着呀&#xff0c;研究了一下&#xff0c;还…

html基础-认识html

1.什么是html html是浏览器可以识别的的标记语言&#xff0c;我们在浏览器浏览的网页就是一个个的html文档 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>认识html</title> </head> <body><h1…