Git中文社区

术语表

中英文对照。看英文文档或报错信息时,可以在这里查对应的中文说法。

中文英文说明
仓库Repository保存项目所有文件及其完整历史记录的数据库,即项目中的 .git 目录。
工作区Working Directory你在电脑上直接编辑的项目文件目录。
暂存区Staging Area / Index记录下次提交将包含哪些修改的区域,通过 git add 将修改放入其中。
提交Commit项目在某一时刻的快照,包含作者、时间、说明以及指向父提交的指针。
分支Branch指向某个提交的可移动指针,用于隔离不同的开发工作。
HEADHEAD指向当前所在分支(或提交)的特殊指针。
分离头指针Detached HEADHEAD 直接指向某个提交而不是分支的状态,此时的新提交不属于任何分支。
远程仓库Remote托管在网络或其他位置的仓库版本,如 GitHub 上的仓库。
originorigin克隆仓库时 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在提交、推送等特定事件发生时自动执行的脚本。
快照SnapshotGit 在每次提交时记录的项目全部文件的状态。
数据对象BlobGit 存储文件内容的对象,不包含文件名。
树对象TreeGit 存储目录结构的对象,记录文件名及指向 blob 或子 tree 的指针。
哈希值SHA-1 / Hash根据内容计算出的 40 位十六进制字符串,用作 Git 对象的唯一标识。
浅克隆Shallow Clone只克隆最近若干次提交的历史,以加快速度、节省空间。