Ubuntu 下 Git 完全使用指南

Ubuntu 下 Git 完全使用指南

文章目录

  • [Ubuntu 下 Git 完全使用指南](#Ubuntu 下 Git 完全使用指南)
    • [1. 安装 Git](#1. 安装 Git)
      • [1.1 使用默认源安装](#1.1 使用默认源安装)
      • [1.2 使用官方 PPA 安装(获取更新版本)](#1.2 使用官方 PPA 安装(获取更新版本))
    • [2. 初始配置](#2. 初始配置)
    • [3. 基本版本控制工作流](#3. 基本版本控制工作流)
      • [3.1 创建或克隆仓库](#3.1 创建或克隆仓库)
      • [3.2 忽略不需要的文件](#3.2 忽略不需要的文件)
      • [3.3 日常提交流程](#3.3 日常提交流程)
      • [3.4 同步远程仓库](#3.4 同步远程仓库)
    • [4. 核心命令速查表](#4. 核心命令速查表)
    • [5. 分支管理详解](#5. 分支管理详解)
      • [5.1 创建与切换分支](#5.1 创建与切换分支)
      • [5.2 合并分支](#5.2 合并分支)
      • [5.3 处理合并冲突](#5.3 处理合并冲突)
    • [6. 远程协作:连接 GitHub / GitLab](#6. 远程协作:连接 GitHub / GitLab)
      • [6.1 使用 SSH 协议(推荐)](#6.1 使用 SSH 协议(推荐))
      • [6.2 使用 HTTPS 协议并缓存密码](#6.2 使用 HTTPS 协议并缓存密码)
    • [7. 常见问题排查](#7. 常见问题排查)
      • [7.1 `git push` 失败](#7.1 git push 失败)
      • [7.2 提交历史出现许多合并节点](#7.2 提交历史出现许多合并节点)
      • [7.3 如何放弃所有本地修改?](#7.3 如何放弃所有本地修改?)
      • [7.4 SSH 连接超时](#7.4 SSH 连接超时)
    • [8. 结语](#8. 结语)

Git 是当今最流行的分布式版本控制系统,在 Ubuntu 系统中无论是个人开发还是团队协作都离不开它。本文将系统地介绍在 Ubuntu 环境下安装、配置和使用 Git 的方法,涵盖从基础操作到远程协作的全流程。

1. 安装 Git

虽然 Ubuntu 通常预装了 Git,但软件源中的版本可能较旧。推荐通过以下命令安装或更新到最新稳定版。

1.1 使用默认源安装

bash 复制代码
sudo apt update
sudo apt install git -y
git --version

1.2 使用官方 PPA 安装(获取更新版本)

bash 复制代码
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt update
sudo apt install git -y

2. 初始配置

安装完成后,必须设置用户名和邮箱,因为每次提交都会附带这些信息。

bash 复制代码
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

建议同时配置以下选项,以符合现代 Git 习惯:

bash 复制代码
git config --global init.defaultBranch main   # 默认分支名设为 main
git config --global color.ui auto             # 开启彩色输出

3. 基本版本控制工作流

3.1 创建或克隆仓库

  • 初始化新仓库 :在项目目录下执行
    git init

  • 克隆远程仓库
    git clone <仓库地址>

3.2 忽略不需要的文件

在项目根目录创建 .gitignore 文件,填写要忽略的文件或目录模式(如 node_modules/, *.log, .env 等)。

bash 复制代码
touch .gitignore
# 编辑 .gitignore 添加忽略规则
git add .gitignore
git commit -m "Add .gitignore"

3.3 日常提交流程

bash 复制代码
git add <文件>          # 将指定文件加入暂存区
git add .              # 加入所有变更
git commit -m "说明本次修改的内容"
git status             # 查看工作区和暂存区状态
git log --oneline --graph   # 查看简洁的提交历史

3.4 同步远程仓库

bash 复制代码
# 首次推送需建立关联
git push -u origin main

# 后续推送
git push

# 拉取远程更新(推荐使用变基方式)
git pull --rebase

4. 核心命令速查表

分类 命令 说明
配置 git config --global user.name "name" 设置全局用户名
git config --global user.email "email" 设置全局邮箱
本地仓库 git init 初始化新仓库
git clone <url> 克隆远程仓库
变更与提交 git add <file> 添加文件到暂存区
git commit -m "message" 提交暂存区内容
git status 查看当前状态
git log 查看提交历史
git diff 查看未暂存的差异
分支管理 git branch 列出本地分支
git branch <name> 创建分支
git switch -c <name> 创建并切换到新分支
git switch <name> 切换分支
git merge <branch> 合并分支
git branch -d <name> 删除分支
远程协作 git remote -v 查看远程仓库地址
git remote add origin <url> 添加远程仓库
git push [-u] origin <branch> 推送到远程
git pull --rebase 拉取并变基
git fetch 仅拉取不合并
撤销与修正 git reset HEAD <file> 撤出暂存区
git checkout -- <file> 丢弃工作区修改(危险)
git commit --amend 修改最近一次提交

5. 分支管理详解

分支是 Git 强大协作能力的核心。

5.1 创建与切换分支

bash 复制代码
git checkout -b feature-A      # 创建并切换到新分支
git branch                     # 查看所有本地分支(* 表示当前分支)

5.2 合并分支

bash 复制代码
git checkout main              # 先切换回主分支
git merge feature-A            # 将 feature-A 合并到 main

5.3 处理合并冲突

当两个分支修改了同一文件的同一区域时,Git 无法自动合并,会标记冲突。冲突文件中会出现如下标记:

复制代码
<<<<<<< HEAD
当前分支的代码
=======
合并分支的代码
>>>>>>> feature-A

手动编辑文件,删除这些标记并保留最终代码,然后:

bash 复制代码
git add .
git commit -m "Merge feature-A: resolve conflict"

6. 远程协作:连接 GitHub / GitLab

6.1 使用 SSH 协议(推荐)

生成 SSH 密钥对(Ed25519 算法):

bash 复制代码
ssh-keygen -t ed25519 -C "你的邮箱"
cat ~/.ssh/id_ed25519.pub

复制输出的公钥内容,添加到 GitHub(Settings → SSH and GPG keys)或 GitLab 中。测试连接:

bash 复制代码
ssh -T git@github.com

若看到包含用户名的成功信息,则表示配置正确。

6.2 使用 HTTPS 协议并缓存密码

bash 复制代码
# 缓存密码 15 分钟
git config --global credential.helper cache

# 永久存储(明文,不安全)
git config --global credential.helper store

7. 常见问题排查

7.1 git push 失败

原因 :本地分支落后于远程分支。
解决 :先执行 git pull --rebase 同步远程变更,再尝试推送。

7.2 提交历史出现许多合并节点

原因 :使用了默认的 git pull(合并模式)而非 git pull --rebase
解决:设置全局变基为默认行为:

bash 复制代码
git config --global pull.rebase true

7.3 如何放弃所有本地修改?

命令git reset --hard HEAD
注意:此操作不可逆,会删除所有未提交的更改,请谨慎使用。

7.4 SSH 连接超时

原因 :可能处于代理环境。
解决:为 Git 设置代理(假设代理端口为 1080):

bash 复制代码
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080

8. 结语

本文涵盖了在 Ubuntu 系统中使用 Git 的核心知识。从安装配置到日常提交,再到分支管理和远程协作,这些技能足以应对大多数开发场景。Git 还有很多高级功能(如 rebase、cherry-pick、reflog 等),可以在熟练基础后进一步探索。

提示 :建议在实际项目中多使用 git statusgit log --graph 观察仓库状态变化,这有助于深刻理解 Git 的工作原理。

相关推荐
坤昱14 小时前
cfs调度类深入解刨——核心结构细节分析
linux·cfs调度·eevdf调度·linux调度·linux技术
Joy T14 小时前
【Web3】跨链资金池与消息路由:CCIP 智能合约集成实战与权限收束
git·web3·node·智能合约·hardhat
枳实-叶14 小时前
【Linux驱动开发】第12天:Linux设备树核心:树形结构+节点+属性 完整全解
linux·运维·驱动开发
Yeats_Liao14 小时前
物联网接入层技术剖析(三):epoll在JVM中的映射
java·linux·jvm·人工智能·物联网
小贾要学习15 小时前
【Linux】基于自定义TCP协议的日期计算器
linux·网络·c++·网络协议·tcp/ip
2501_9200470315 小时前
iptables防火墙
linux·运维·网络安全
難釋懷15 小时前
Nginx虚拟主机
git·nginx·github
带土115 小时前
7. 线程编程(线程概念和创建)
linux
华清远见IT开放实验室16 小时前
硬核根基,智能载体:华清远见嵌入式“硬件+仿真+课程+师资”产教融合与实践教学方案
linux·人工智能·stm32·物联网·嵌入式·虚拟仿真
Anthony_23116 小时前
Linux 防火墙完全指南:从 iptables 到 firewalld
linux·运维·服务器