术语表
中英文对照。看英文文档或报错信息时,可以在这里查对应的中文说法。
| 中文 | 英文 | 说明 |
|---|---|---|
| 仓库 | Repository | 保存项目所有文件及其完整历史记录的数据库,即项目中的 .git 目录。 |
| 工作区 | Working Directory | 你在电脑上直接编辑的项目文件目录。 |
| 暂存区 | Staging Area / Index | 记录下次提交将包含哪些修改的区域,通过 git add 将修改放入其中。 |
| 提交 | Commit | 项目在某一时刻的快照,包含作者、时间、说明以及指向父提交的指针。 |
| 分支 | Branch | 指向某个提交的可移动指针,用于隔离不同的开发工作。 |
| HEAD | HEAD | 指向当前所在分支(或提交)的特殊指针。 |
| 分离头指针 | Detached HEAD | HEAD 直接指向某个提交而不是分支的状态,此时的新提交不属于任何分支。 |
| 远程仓库 | Remote | 托管在网络或其他位置的仓库版本,如 GitHub 上的仓库。 |
| origin | origin | 克隆仓库时 Git 为远程仓库设置的默认名称。 |
| 上游 | Upstream | 本地分支所跟踪的远程分支;在 Fork 工作流中也指原始仓库。 |
| 远程跟踪分支 | Remote-tracking Branch | 如 origin/main,记录上次与远程通信时远程分支的状态,只读。 |
| 克隆 | Clone | 把远程仓库完整复制到本地,包括所有历史。 |
| 获取 | Fetch | 从远程下载本地没有的数据,但不修改当前分支。 |
| 拉取 | Pull | 获取远程更新并合并(或变基)到当前分支,相当于 fetch + merge。 |
| 推送 | Push | 把本地提交上传到远程仓库。 |
| 合并 | Merge | 把一个分支的修改整合到另一个分支。 |
| 快进 | Fast-forward | 目标分支没有新提交时,合并只需将指针前移,不产生合并提交。 |
| 冲突 | Conflict | 两个分支修改了同一处内容,Git 无法自动合并时产生的状态。 |
| 变基 | Rebase | 把一系列提交移动到新的基础提交之上重新应用,从而得到线性历史。 |
| 挑选 | Cherry-pick | 把某个指定的提交应用到当前分支。 |
| 储藏 | Stash | 临时保存未提交的修改,让工作区恢复干净。 |
| 标签 | Tag | 指向特定提交的固定名字,常用于标记发布版本。 |
| 附注标签 | Annotated Tag | 包含打标签者、日期和说明等信息的完整标签对象。 |
| 引用日志 | Reflog | 记录 HEAD 和分支指针每一次变动的本地日志,可用于找回丢失的提交。 |
| 复刻 | Fork | 在托管平台上把他人的仓库复制一份到自己的账号下。 |
| 拉取请求 | Pull Request / Merge Request | 在托管平台上请求把一个分支的修改合并到另一个分支,并进行代码评审。 |
| 裸仓库 | Bare Repository | 没有工作区、只包含 Git 数据的仓库,通常用作服务器上的共享仓库。 |
| 子模块 | Submodule | 在一个仓库中以固定版本引用另一个独立仓库。 |
| 工作树 | Worktree | 同一仓库关联的额外工作目录,可同时检出不同分支。 |
| 钩子 | Hook | 在提交、推送等特定事件发生时自动执行的脚本。 |
| 快照 | Snapshot | Git 在每次提交时记录的项目全部文件的状态。 |
| 数据对象 | Blob | Git 存储文件内容的对象,不包含文件名。 |
| 树对象 | Tree | Git 存储目录结构的对象,记录文件名及指向 blob 或子 tree 的指针。 |
| 哈希值 | SHA-1 / Hash | 根据内容计算出的 40 位十六进制字符串,用作 Git 对象的唯一标识。 |
| 浅克隆 | Shallow Clone | 只克隆最近若干次提交的历史,以加快速度、节省空间。 |