Git是一个涵盖了大量术语和行话的工具,这对于新用户,或者那些知道Git基础知识但想成为Git大师的人来说,往往会感到困难。所以,我们需要对这些工具背后的术语做一点解释。让我们来看看那些常用的术语。
一些常用的术语是。
分支
分支是版本库的一个版本,它与主要工作项目相背离。它是大多数现代版本控制系统中的一个基本功能。一个Git项目可以有一个以上的分支。我们可以对 Git 分支进行许多操作,如重命名、列表、删除等。
Checkout
在Git中,签出一词是指在目标实体的不同版本之间的切换行为。git checkout 命令用于在仓库的不同分支之间进行切换。
Cherry-pick)
Git 中的 Cherry-picking 是指将一个分支的某些提交应用到另一个分支。如果你犯了一个错误,把某个改动提交到了错误的分支,但又不想合并整个分支。你可以恢复该提交,并在另一个分支上摘取它。
Clone
git clone 是一个 Git 命令行工具。它被用来制作目标仓库的副本或克隆它。如果我想从GitHub上拷贝我的仓库,这个工具允许在你的本地目录上通过仓库的URL创建该仓库的本地拷贝。
Fetch
它被用来从一个或多个其它存储库获取分支和标签,以及完成其历史所需的对象。它更新远程跟踪的分支。
HEAD
HEAD 是当前签出分支中最后一次提交的表示。我们可以把 HEAD 看作是一个当前分支。当你用git checkout切换分支时,HEAD的修订版会发生变化,并指向新的分支。
索引(Index )
Git 索引是工作目录和仓库之间的一个暂存区域。它被用来作为索引来建立你想一起提交的一组修改。
Master
Master 是 Git 分支的一种命名方式。它是 Git 的一个默认分支。从远程服务器克隆一个项目后,产生的本地仓库只包含一个本地分支。这个分支被称为 “主 “分支。这意味着,”master “是一个仓库的 “默认 “分支。
合并(Merge)
合并是一个将分叉的历史重新组合起来的过程。git merge命令可以帮助你将git分支创建的数据整合到一个分支中。
Origin
在 Git 中,”origin “是对项目最初克隆的远程仓库的引用。更确切地说,它被用来代替原始仓库的URL,以使引用更容易。
Pull/Pull Request
术语Pull是用来接收来自GitHub的数据。它获取并合并远程服务器上的变化到你的工作目录。git pull 命令用来进行 Git 拉取。
拉动请求是一个开发者通知团队成员他们已经完成了一个特性的过程。一旦他们的特性分支准备好了,开发者就通过他们的远程服务器账户提交一个拉动请求。拉动请求宣布所有的团队成员,他们需要审查代码并将其合并到主分支。
Push
推送一词是指将本地版本库的内容上传到远程版本库。推送是一种从本地版本库向远程版本库传输提交的行为。推送能够覆盖修改,推送时要注意。
Rebase
在Git中,术语rebase指的是将一连串的提交移动或合并到一个新的基础提交的过程。重置是非常有益的,在特性分支工作流程的环境下,重置过程是可视化的。
从内容上看,重新发布是一种从一个提交到另一个提交改变分支基础的技术。
Remote
在Git中,远程一词涉及到远程仓库。它是一个共享仓库,所有团队成员都用它来交换他们的修改。远程仓库存储在代码托管服务上,如内部服务器、GitHub、Subversion等。
在本地版本库的情况下,远程通常不提供项目当前状态的文件树,作为替代,它只包括.git版本数据。
仓库
在Git中,Repository就像一个数据结构,被VCS用来存储一组文件和目录的元数据。它包含了文件的集合,以及对这些文件的修改历史。Git中的仓库被认为是你的项目文件夹。一个仓库有所有与项目有关的数据。不同的项目有不同的存储库。
暂存
有时你想切换分支,但你正在处理当前项目的一个未完成部分。你不想对半成品进行提交。Git stashing 允许你这样做。git stash 命令使你能够在不提交当前分支的情况下切换分支。
标签(Tag)
Tag
标签使一个点成为Git历史上的一个特定点。它被用来标记一个提交阶段的重要性。我们可以标记一个提交以备将来参考。主要是用来标记一个项目的初始点,如v1.1。有两种类型的标签。
- 轻量级的标签
- 附加说明的标签
上游与下游(Upstream And Downstream)
上游和下游这个词是对版本库的一种参考。一般来说,上游是你克隆仓库的地方(原点),下游是任何将你的作品与其他作品整合的项目。然而,这些术语并不限于 Git 仓库。
Git Revert
在 Git 中,revert 一词被用来恢复某些提交。要恢复一个提交,可以使用 git revert 命令。它是一个撤消类型的命令。然而,它并不是传统的撤销命令。
Git Reset
在Git中,reset这个词代表了撤销修改。git reset 命令是用来重置更改的。git reset 命令有三种核心调用形式。这些形式如下。
- Soft
- Mixed
- Hard
Git Ignore
在Git中,ignore一词用于指定Git应该忽略的故意不被追踪的文件。它并不影响已经被Git追踪的文件。
Git Diff
Git diff 是一个命令行工具。它是一个多用途的Git命令。当它被执行时,它会对Git数据源运行一个差异函数。这些数据源可以是文件、分支、提交等等。它被用来显示提交、提交和工作树之间的变化等。
Git 备忘录
Git备忘录是对Git快速参考的总结。它包含快速安装的基本 Git 命令。小抄是一组用于快速参考的简要说明。小抄之所以被称为小抄,是因为人们可以在没有任何知识的情况下使用它。
Git Flow
GitFlow是Git的一个分支模型,由Vincent Driessen开发。它能很好地组织开发团队进行协作和扩展。Git flow 是一个 Git 命令的集合。它只用单个命令就能完成许多仓库操作。
Git Squash
在Git中,”Squash “一词被用来将之前的提交压扁成一个。Git squash 是一种很好的技术,可以将特定的修改分组后再转发给其他人。你可以用强大的交互式 rebase 命令将几个提交合并成一个提交。
Git Rm
在 Git 中,术语 rm 代表删除。它被用来删除单个文件或一个文件集合。git rm 的主要功能是将跟踪的文件从 Git 索引中移除。此外,它还可以用来从工作目录和暂存索引中删除文件。
Git Fork
分叉是一个版本库的粗略拷贝。分叉版本库允许你在不影响原项目的情况下自由地测试和调试修改。
很好地利用了使用分叉来提出修复bug的改动。为了解决你发现的一个bug的问题,你可以。
- 叉开存储库。
- 进行修复。
- 将pull请求转发给项目负责人。