Linux 系统下 Git 的详细安装步骤和基础设置指南

Linux 系统下 Git 的详细安装步骤和基础设置指南

在这里插入图片描述

Linux 系统下 Git 的详细安装步骤和基础设置指南—目录


一、安装 Git

1. Debian/Ubuntu 系统

# 更新软件包列表sudoapt update # 安装 Gitsudoaptinstallgit -y # 验证安装git --version 

• 输出示例:git version 2.39.0


2. CentOS/RHEL 系统

# 启用 EPEL 仓库(若未启用)sudo yum install epel-release -y # 安装 Gitsudo yum installgit -y # 或使用 dnf(CentOS 8+)sudo dnf installgit -y # 验证安装git --version 

3. Fedora 系统

# 使用 dnf 安装sudo dnf installgit -y # 验证安装git --version 

4. Arch/Manjaro 系统

# 使用 pacman 安装sudo pacman -Syu git -S # 验证安装git --version 

5. 其他方式:源码编译安装(适用于所有发行版)

编译并安装:

makeprefix=/usr/local all sudomakeprefix=/usr/local install# 验证安装git --version 

下载并解压 Git 源码:

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.0.tar.gz tar -zxvf git-2.39.0.tar.gz cd git-2.39.0 

安装依赖:

# Debian/Ubuntusudoaptinstall curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y # CentOS/RHELsudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y 

二、基础配置

1. 设置全局用户名和邮箱

git config --global user.name "Your Name"git config --global user.email "[email protected]"# 验证配置git config --global --list 

2. 配置 SSH 密钥(用于 GitHub/GitLab 等)

测试 SSH 连接:

ssh -T [email protected] 

• 成功提示:Hi username! You've successfully authenticated.

将公钥添加到 GitHub/GitLab:
• 复制公钥内容:

cat ~/.ssh/id_ed25519.pub 

• 登录 GitHub → Settings → SSH and GPG Keys → 添加新 SSH Key。

生成 SSH 密钥:

ssh-keygen -t ed25519 -C "[email protected]"

• 按提示保存密钥到默认路径(~/.ssh/id_ed25519)。
• 设置密钥密码(可选)。


3. 配置 Git 别名(简化命令)

git config --global alias.co checkout git config --global alias.br branch git config --global alias.st status git config --global alias.lg "log --oneline --graph --all"

• 示例:git st 等同于 git status


4. 启用自动换行符转换(解决跨平台换行符问题)

git config --global core.autocrlf input # Linux/macOSgit config --global core.safecrlf warn # 检测混合换行符

三、高级设置

1. 配置差异工具(如 Meld)

配置 Git 调用 Meld:

git config --global merge.tool meld git config --global mergetool.meld.path "/usr/bin/meld"

安装 Meld:

# Debian/Ubuntusudoaptinstall meld -y # CentOS/RHELsudo yum install meld -y 

2. 配置 Git 代理(解决网络问题)

# HTTP/HTTPS 代理git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy https://127.0.0.1:7890 # SOCKS5 代理(如 Clash)git config --global http.proxy socks5://127.0.0.1:7890 git config --global https.proxy socks5://127.0.0.1:7890 # 取消代理git config --global --unset http.proxy git config --global --unset https.proxy 

3. 配置钩子(Hooks)自动化操作

示例:在提交前运行代码检查
• 进入仓库的 .git/hooks 目录:

cd /path/to/repo/.git/hooks 

• 创建 pre-commit 文件:

#!/bin/shecho"Running code checks..."npmtest# 示例:运行测试

• 赋予执行权限:

chmod +x pre-commit 

四、常见问题与解决方法

1. 安装失败:E: Unable to locate package git

• 解决:更新软件源并重试:

sudoapt update &&sudoaptinstallgit -y 

2. 权限错误:Permission denied (publickey)

• 解决:

  1. 检查公钥是否正确添加到 GitHub/GitLab。

确认 SSH 密钥已添加到 ssh-agent

eval"$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 

3. Git 版本过旧

• 升级 Git:

# Debian/Ubuntusudo add-apt-repository ppa:git-core/ppa -y sudoapt update &&sudoapt upgrade git -y # Fedorasudo dnf upgrade git -y 

4. 终端提示 git: command not found

• 解决:
• 检查是否已安装:which git
• 若未安装,通过上述方法重新安装。
• 确保 Git 路径在环境变量中(echo $PATH)。


五、卸载 Git

1. 通过包管理器卸载

• Debian/Ubuntu:

sudoapt remove git -y 

• CentOS/RHEL:

sudo yum remove git -y 

2. 手动卸载(源码安装)

sudorm -rf /usr/local/bin/git sudorm -rf /usr/local/share/doc/git 

六、学习资源推荐

  1. Pro Git 电子书(免费):
    https://git-scm.com/book/zh/v2
  2. GitHub 官方教程:
    https://guides.github.com/
  3. Git 命令速查表:
    https://education.github.com/git-cheat-sheet-education.pdf

通过以上步骤,您可以在 Linux 系统上快速安装并配置 Git,满足日常开发需求!


Read more

【数据结构手札】空间复杂度详解:概念 | 习题

【数据结构手札】空间复杂度详解:概念 | 习题

🌈个人主页:聆风吟 🔥系列专栏:数据结构手札 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 * 📚专栏订阅推荐 * 📋往期回顾:复杂度概念 * 📋往期回顾:大O的渐进表示法 * 一. ⛳️算法的空间复杂度 * 二. ⛳️常见空间复杂度计算举例 * 1️⃣实例一 * 2️⃣实例二 * 3️⃣实例三 * 4️⃣实例四 * 📝全文总结 📚专栏订阅推荐 专栏名称专栏简介C++藏宝阁本专栏聚焦学习阶段核心知识点,深耕基础与实战,干货笔记持续更新,和大家共学共进,夯实编程功底。数据结构手札本专栏主要是我的数据结构入门学习手札,记录个人从基础到进阶的学习总结。数据结构手札・刷题篇本专栏是《数据结构手札》配套习题讲解,通过练习相关题目加深对算法理解。 📋往期回顾:复杂度概念 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。 时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额

By Ne0inhk
【数据结构】树、森林与二叉树的转换(含详细图解)

【数据结构】树、森林与二叉树的转换(含详细图解)

亲爱的读者朋友们😃,此文开启知识盛宴与思想碰撞🎉。 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 😖如果你对二叉树的概念还存在疑惑,欢迎观看我之前的作品: 🔥🔥🔥【数据结构】剖析二叉树(Binary Tree) 目录 💯前言 💯树转换为二叉树  ⭐转换步骤详解 (一)连接兄弟节点 (二)给除长子以外的孩子去线 (三)层次调整 💯森林转换为二叉树   ⭐转换步骤详解 (一)将森林里的每一棵树转换为二叉树 (二)将所有二叉树转换为一棵二叉树 💯二叉树转换成树   ⭐转换步骤详解 (一)加线 (二)去线 (三)层次调整 💯将二叉树转换成森林    ⭐转换步骤详解 (一)寻找右孩子去线 (二)将分离的二叉树转换成树 💯总结 💯前言 👀在数据结构的世界里,树、森林和二叉树是重要的概念,它们之间存在着巧妙的转换关系,这种转换不仅具有理论意义,

By Ne0inhk
【C语言】排序算法——快速排序详解(含多种变式)!!!

【C语言】排序算法——快速排序详解(含多种变式)!!!

【C语言】排序算法——快速排序详解(含多种变式)!!! * 前言 * 一 、快速排序(初阶) * 1. 视频演示 * 2. 算法思想 * 3. 实现思路 * (1)定key值 * (2)大小交换 * (3)循环 * (4)交换key * (5)分割区间 * (6)结束 * 4. 实现代码 * 二 、快速排序(中阶) * 1. 存在的问题 * 2. 优化(三数取中) * 3. 实现代码(中阶) * 三 、快速排序(高阶) * 1. 仍存在的问题 * 2. 优化(小区间优化) * 3. 实现代码(高阶)

By Ne0inhk