Skip to content

Git Glossary

本章提供了 Git 中常用术语的详细解释,帮助你更好地理解和使用 Git。

A

Add(添加)

将文件从工作区添加到暂存区的操作。

bash
git add filename.txt
git add .  # 添加所有文件

Annotated Tag(带注释的标签)

包含额外信息(如作者、日期、消息)的标签。

bash
git tag -a v1.0.0 -m "Release version 1.0.0"

Atomic Commit(原子提交)

一个逻辑上完整且不可分割的提交,包含相关的更改。

B

Branch(分支)

指向特定提交的可移动指针,用于并行开发。

bash
git branch feature-login
git checkout -b feature-login

Bare Repository(裸仓库)

没有工作区的 Git 仓库,通常用作远程仓库。

bash
git clone --bare my-project my-project.git

Bisect(二分查找)

使用二分法查找引入 bug 的提交。

bash
git bisect start
git bisect bad
git bisect good commit_hash

Blob(二进制大对象)

Git 中存储文件内容的对象类型。

C

Checkout(检出)

切换分支或恢复文件的操作。

bash
git checkout main
git checkout -- filename.txt

Cherry-pick(挑选)

将特定提交应用到当前分支。

bash
git cherry-pick commit_hash

Clone(克隆)

创建远程仓库的本地副本。

bash
git clone https://github.com/user/repo.git

Commit(提交)

将暂存区的更改保存到版本库的操作。

bash
git commit -m "Add new feature"

Commit Hash(提交哈希)

唯一标识提交的 SHA-1 哈希值。

bash
# 示例:a1b2c3d4e5f6789012345678901234567890abcd

Conflict(冲突)

当合并或变基时,两个分支修改了同一文件的同一部分。

Conventional Commits(约定式提交)

标准化的提交信息格式。

bash
feat(auth): add OAuth login support
fix(ui): resolve mobile navigation issue

D

Detached HEAD(分离头指针)

HEAD 指向特定提交而不是分支的状态。

bash
git checkout commit_hash  # 进入分离头指针状态

Diff(差异)

显示文件或提交之间的差异。

bash
git diff
git diff HEAD~1 HEAD

Distributed Version Control(分布式版本控制)

每个开发者都有完整仓库副本的版本控制系统。

F

Fast-forward(快进)

当目标分支没有新提交时的合并方式。

bash
# 快进合并不创建新的合并提交
A---B---C  (main)
         \
          D---E  (feature)
# 合并后:A---B---C---D---E  (main)

Fetch(获取)

从远程仓库下载对象和引用,但不合并。

bash
git fetch origin

Fork(分叉)

在 GitHub 等平台上创建仓库的个人副本。

G

Git Flow

一种基于分支的开发工作流模型。

  • main/master:生产分支
  • develop:开发分支
  • feature/*:功能分支
  • release/*:发布分支
  • hotfix/*:热修复分支

GitHub Flow

简化的工作流程,主要使用 main 分支和功能分支。

Gitignore

指定 Git 应该忽略的文件和目录的配置文件。

bash
# .gitignore 示例
*.log
node_modules/
.env

H

指向当前分支最新提交的指针。

bash
git log HEAD
git reset HEAD~1

Hash(哈希)

Git 使用 SHA-1 算法生成的唯一标识符。

Hook(钩子)

在特定 Git 事件发生时自动执行的脚本。

bash
# 常见钩子
pre-commit    # 提交前
post-commit   # 提交后
pre-push      # 推送前

Hotfix(热修复)

针对生产环境紧急问题的快速修复。

I

Index(索引)

暂存区的另一个名称,存储下次提交的内容。

Init(初始化)

创建新的 Git 仓库。

bash
git init
git init --bare  # 创建裸仓库

Issue(问题)

在 GitHub 等平台上跟踪 bug、功能请求或任务的工具。

L

Log(日志)

显示提交历史。

bash
git log
git log --oneline
git log --graph

Lightweight Tag(轻量标签)

简单的提交引用,不包含额外信息。

bash
git tag v1.0.0

M

Merge(合并)

将两个或多个分支的更改整合到一起。

bash
git merge feature-branch
git merge --no-ff feature-branch  # 非快进合并

Merge Conflict(合并冲突)

当合并时两个分支修改了同一文件的同一部分。

Master/Main(主分支)

仓库的默认主分支,通常包含稳定的代码。

O

Origin(源)

默认远程仓库的名称。

bash
git remote add origin https://github.com/user/repo.git

Orphan Branch(孤立分支)

没有父提交的分支。

bash
git checkout --orphan gh-pages

P

Pull(拉取)

从远程仓库获取更改并合并到当前分支。

bash
git pull origin main
# 等同于
git fetch origin
git merge origin/main

Pull Request(拉取请求)

在 GitHub 等平台上请求将更改合并到目标分支的机制。

Push(推送)

将本地更改上传到远程仓库。

bash
git push origin main
git push -u origin feature-branch  # 设置上游分支

R

Rebase(变基)

将一系列提交重新应用到另一个基础提交上。

bash
git rebase main
git rebase -i HEAD~3  # 交互式变基

Reflog(引用日志)

记录 HEAD 和分支引用变化的日志。

bash
git reflog
git reflog show branch-name

Remote(远程)

其他仓库的引用,通常在网络上。

bash
git remote -v
git remote add upstream https://github.com/original/repo.git

Repository(仓库)

包含项目文件和完整版本历史的目录。

Reset(重置)

移动 HEAD 和当前分支指针到指定提交。

bash
git reset --soft HEAD~1   # 保留更改在暂存区
git reset --mixed HEAD~1  # 保留更改在工作区
git reset --hard HEAD~1   # 丢弃所有更改

Revert(撤销)

创建新提交来撤销之前的更改。

bash
git revert commit_hash

S

SHA(安全哈希算法)

Git 使用 SHA-1 算法生成提交的唯一标识符。

Staging Area(暂存区)

准备下次提交的文件存储区域。

bash
git add file.txt  # 添加到暂存区
git reset HEAD file.txt  # 从暂存区移除

Stash(储藏)

临时保存工作区和暂存区更改的功能。

bash
git stash
git stash pop
git stash list

Submodule(子模块)

将一个 Git 仓库作为另一个仓库的子目录。

bash
git submodule add https://github.com/user/lib.git lib

Switch(切换)

Git 2.23+ 引入的分支切换命令。

bash
git switch main
git switch -c new-branch

T

Tag(标签)

指向特定提交的不可移动引用,通常用于标记版本。

bash
git tag v1.0.0
git tag -a v1.0.0 -m "Release version 1.0.0"

Three-way Merge(三方合并)

使用两个分支和它们的共同祖先进行的合并。

Tracking Branch(跟踪分支)

与远程分支关联的本地分支。

bash
git branch --set-upstream-to=origin/main main

Tree(树)

Git 中表示目录结构的对象类型。

U

Untracked Files(未跟踪文件)

不在 Git 版本控制下的文件。

bash
git status  # 显示未跟踪文件
git add .   # 添加所有未跟踪文件

Upstream(上游)

当前分支跟踪的远程分支。

bash
git push -u origin feature-branch  # 设置上游分支

W

Working Directory(工作目录)

包含项目文件的目录,可以编辑文件的地方。

Working Tree(工作树)

工作目录中被 Git 跟踪的文件集合。

Worktree(工作树)

允许同时检出同一仓库的多个分支到不同目录。

bash
git worktree add ../feature-branch feature-branch

常用 Git 命令速查

基础操作

bash
git init                    # 初始化仓库
git clone <url>            # 克隆仓库
git add <file>             # 添加文件到暂存区
git commit -m "message"    # 提交更改
git status                 # 查看状态
git log                    # 查看历史

分支操作

bash
git branch                 # 查看分支
git branch <name>          # 创建分支
git checkout <branch>      # 切换分支
git checkout -b <branch>   # 创建并切换分支
git merge <branch>         # 合并分支
git branch -d <branch>     # 删除分支

远程操作

bash
git remote -v              # 查看远程仓库
git fetch                  # 获取远程更新
git pull                   # 拉取并合并
git push                   # 推送更改
git push -u origin <branch> # 推送并设置上游

撤销操作

bash
git checkout -- <file>     # 撤销工作区更改
git reset HEAD <file>      # 撤销暂存区更改
git reset --soft HEAD~1    # 撤销提交(保留更改)
git reset --hard HEAD~1    # 撤销提交(丢弃更改)
git revert <commit>        # 撤销特定提交

查看和比较

bash
git diff                   # 查看工作区差异
git diff --staged          # 查看暂存区差异
git diff <commit1> <commit2> # 比较提交
git show <commit>          # 查看提交详情
git blame <file>           # 查看文件修改历史

Git 工作流程图

工作区 (Working Directory)
    ↓ git add
暂存区 (Staging Area)
    ↓ git commit
本地仓库 (Local Repository)
    ↓ git push
远程仓库 (Remote Repository)

分支模型图

Git Flow:
main ────●────●────●────●────
         │    │    │    │
develop ─●────●────●────●────
         │    │    │
feature ─●────●────●

release ──────●────●

hotfix ────────────●

提交状态图

Untracked → Staged → Committed
    ↑         ↑         ↑
git add   git add   git commit
    ↓         ↓         ↓
Modified ← Modified ← Modified

总结

这个术语表涵盖了 Git 中最重要的概念和术语:

核心概念

  • 仓库:项目的完整版本历史
  • 提交:项目状态的快照
  • 分支:并行开发的工具
  • 合并:整合不同分支的更改

重要操作

  • 添加:将更改加入暂存区
  • 提交:保存更改到版本历史
  • 推送:上传到远程仓库
  • 拉取:从远程仓库获取更新

高级功能

  • 变基:重写提交历史
  • 储藏:临时保存更改
  • 标签:标记重要版本
  • 钩子:自动化工作流

理解这些术语将帮助你:

  • 📚 更好地阅读 Git 文档
  • 💬 与团队成员有效沟通
  • 🔧 正确使用 Git 功能
  • 🚀 提高开发效率

掌握了这些基本术语,你就具备了深入学习和使用 Git 的基础知识。

本站内容仅供学习和研究使用。