Files
2026-05-10 10:56:52 +08:00

8.6 KiB
Raw Permalink Blame History

Git 使用手册

版本: 1.0
适用系统: Ubuntu 20.04 / 通用
Git 版本: 2.25.1+


目录

  1. Git 简介
  2. 安装与配置
  3. 基础操作
  4. 分支管理
  5. 远程仓库
  6. 撤销与回退
  7. 标签管理
  8. 常见工作流程
  9. 常用命令速查表

1. Git 简介

Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建。它能够高效地处理从小型到大型项目的版本管理,是目前最流行的版本控制工具。

核心特点

  • 分布式: 每个开发者本地都有完整的代码仓库
  • 高效: 针对文件差异和分支操作进行了优化
  • 数据完整性: 所有数据在存储前都会计算校验和
  • 支持非线性开发: 轻量级分支,鼓励分支开发

2. 安装与配置

2.1 在 Ubuntu/Debian 上安装

# 更新软件包列表
sudo apt update

# 安装 Git
sudo apt install -y git

# 验证安装
git --version

2.2 在 CentOS/RHEL 上安装

sudo yum install -y git

2.3 基本配置

# 配置用户名(提交时记录)
git config --global user.name "Your Name"

# 配置邮箱
git config --global user.email "your_email@example.com"

# 配置默认分支名(Git 2.28+)
git config --global init.defaultBranch main

# 配置默认文本编辑器
git config --global core.editor "vim"

# 查看当前配置
git config --list

配置文件的优先级: 项目级 .git/config > 全局 ~/.gitconfig > 系统级 /etc/gitconfig


3. 基础操作

3.1 创建仓库

# 在当前目录初始化新仓库
git init

# 克隆远程仓库
git clone <仓库地址>
git clone <仓库地址> <本地目录名>

3.2 文件状态

Git 文件有三种状态:已修改 (modified)、已暂存 (staged)、已提交 (committed)

# 查看文件状态
git status

# 以简洁模式查看
git status -s

状态标识说明:

  • ?? - 未跟踪的文件
  • M - 已修改
  • A - 已暂存
  • D - 已删除

3.3 添加与提交

# 添加文件到暂存区
git add <文件名>         # 添加指定文件
git add .                # 添加所有变更
git add -A               # 添加所有变更(包括删除)
git add -p               # 交互式分段添加

# 提交到本地仓库
git commit -m "提交说明"
git commit -am "提交说明"  # 跳过 git add(仅对已跟踪文件有效)

# 修改最后一次提交
git commit --amend -m "新的提交说明"

3.4 查看历史

# 查看提交历史
git log
git log --oneline        # 简洁模式
git log --graph          # 图形化显示
git log --all            # 显示所有分支
git log -p               # 显示差异内容
git log --author="名字"  # 按作者筛选
git log --since="2024-01-01"  # 按时间筛选

# 查看某个文件的修改历史
git log -p <文件名>
git blame <文件名>       # 每行最后修改者

4. 分支管理

4.1 创建与切换

# 查看分支列表
git branch                    # 本地分支
git branch -r                 # 远程分支
git branch -a                 # 所有分支

# 创建分支
git branch <分支名>

# 切换分支
git checkout <分支名>
git switch <分支名>           # 新式语法

# 创建并切换分支
git checkout -b <分支名>
git switch -c <分支名>

# 重命名分支
git branch -m <旧名> <新名>

4.2 合并与变基

# 合并指定分支到当前分支
git merge <分支名>

# 变基操作(将当前分支的提交移至目标分支顶端)
git rebase <分支名>

# 交互式变基(合并、修改提交记录)
git rebase -i HEAD~3         # 修改最近 3 个提交

合并 vs 变基: 合并保留完整历史,变基使历史更线性。公共分支推荐使用合并,个人分支可使用变基。

4.3 删除分支

# 删除本地分支
git branch -d <分支名>       # 安全删除(会检查是否已合并)
git branch -D <分支名>       # 强制删除

# 删除远程分支
git push origin --delete <分支名>

5. 远程仓库

5.1 管理远程仓库

# 查看远程仓库
git remote -v

# 添加远程仓库
git remote add origin <仓库地址>

# 修改远程仓库地址
git remote set-url origin <新地址>

# 删除远程仓库
git remote remove origin

5.2 推送与拉取

# 推送到远程仓库
git push origin <分支名>
git push -u origin <分支名>   # 首次推送,建立关联
git push --all                # 推送所有分支
git push origin --tags        # 推送所有标签

# 拉取远程更新
git pull                      # 拉取并合并(相当于 fetch + merge)
git pull --rebase             # 拉取并变基(推荐)
git fetch                     # 仅拉取,不自动合并

5.3 处理冲突

# 当合并或拉取产生冲突时:
# 1. 编辑冲突文件,保留需要的内容
# 2. 标记为已解决
git add <已解决冲突的文件>

# 3. 完成合并
git commit

# 中止合并
git merge --abort

6. 撤销与回退

6.1 撤销工作区修改

# 恢复文件到最近一次提交的状态
git checkout -- <文件名>
git restore <文件名>          # 新式语法

6.2 撤销暂存区

# 将文件从暂存区移出(保留工作区修改)
git reset HEAD <文件名>
git restore --staged <文件名>  # 新式语法

6.3 回退提交

# 软重置(保留工作区和暂存区修改)
git reset --soft HEAD~1

# 混合重置(保留工作区,清空暂存区)- 默认模式
git reset --mixed HEAD~1

# 硬重置(丢弃所有修改)- 谨慎使用!
git reset --hard HEAD~1

# 回退到指定提交
git reset --hard <提交哈希>

# 生成一个新的反向提交来撤销修改
git revert HEAD              # 撤销最近一次提交
git revert <提交哈希>

git reset 与 git revert 的区别:reset 会删除提交历史,revert 会保留历史并新增一个反向提交。公共分支应使用 revert。


7. 标签管理

# 创建标签
git tag <标签名>              # 轻量标签
git tag -a <标签名> -m "说明"  # 附注标签

# 查看标签
git tag
git tag -l "v1.*"            # 匹配模式

# 推送标签到远程
git push origin <标签名>
git push origin --tags

# 删除标签
git tag -d <标签名>
git push origin --delete <标签名>

8. 常见工作流程

8.1 Git Flow 工作流

适用于有固定发布周期的项目:

  • main - 主分支,存放稳定版本
  • develop - 开发分支
  • feature/* - 功能分支
  • release/* - 发布分支
  • hotfix/* - 紧急修复分支

8.2 GitHub Flow

适用于持续交付的项目:

  1. 从 main 创建功能分支
  2. 提交修改
  3. 发起 Pull Request
  4. 代码评审 + 自动化测试
  5. 合并回 main
  6. 立即部署

8.3 日常开发流程示例

# 1. 更新主分支
git checkout main
git pull

# 2. 创建功能分支
git checkout -b feature/my-feature

# 3. 开发并提交
git add .
git commit -m "feat: 添加新功能"

# 4. 同步上游变更
git fetch origin
git rebase origin/main

# 5. 推送并创建 Pull Request
git push -u origin feature/my-feature

9. 常用命令速查表

操作 命令
初始化仓库 git init
克隆仓库 git clone <url>
查看状态 git status
添加文件 git add <file>
提交 git commit -m "msg"
查看日志 git log --oneline --graph
创建分支 git branch <name>
切换分支 git switch <name>
创建+切换 git switch -c <name>
合并分支 git merge <name>
推送 git push origin <branch>
拉取 git pull --rebase
查看差异 git diff
暂存修改 git stash
恢复暂存 git stash pop
查看远程 git remote -v

附录

.gitignore 文件示例

# 编译输出
*.o
*.class
*.exe
*.dll

# 依赖目录
node_modules/
vendor/
__pycache__/

# IDE 配置
.vscode/
.idea/
*.swp

# 系统文件
.DS_Store
Thumbs.db

# 环境配置
.env
*.local

提交信息规范

推荐使用 Conventional Commits 规范:

<类型>(<范围>): <简短描述>

<详细描述>

<尾部信息>

类型包括:feat、fix、docs、style、refactor、test、chore 等。


本文档持续更新中...
更多信息请访问 Git 官方文档