Git 术语
Git是一个涵盖广泛术语和行话的工具,对于新用户或者那些了解Git基础知识但想要成为Git专家的人来说,这些术语常常难以理解。因此,我们需要简要解释一下这些工具背后的术语。让我们来看看常用的术语。
一些常用术语包括:
分支(Branch)
分支是与主工作项目不同的存储库版本。它是大多数现代版本控制系统中的一个重要特性。Git项目可以有多个分支。我们可以对Git分支执行许多操作,例如重命名、列出、删除等。
检出(Checkout)
在Git中,检出是指在不同版本的目标实体之间切换的行为。使用 git checkout 命令在存储库中切换分支。
挑选(Cherry-Picking)
在Git中,挑选是指将一个分支的某个提交应用到另一个分支中。如果你在错误的分支上提交了更改,但又不想合并整个分支,可以撤消提交,然后在另一个分支上挑选它。
克隆(Clone)
git clone 是一个Git命令行实用程序,用于复制目标存储库或克隆它。如果我想要从GitHub获取我的存储库的本地副本,该工具允许在本地目录中创建该存储库的本地副本。
提取(Fetch)
提取是从一个或多个其他存储库中提取分支和标签,以及完成它们的历史所需的对象。它更新了远程跟踪分支。
头(HEAD)
HEAD是当前检出分支中的最后一次提交的表示。我们可以将HEAD视为当前分支。当你使用git checkout切换分支时,HEAD版本会更改,并指向新的分支。
索引(Index)
Git索引是工作目录和存储库之间的暂存区。它用作构建一组要一起提交的更改的索引。
主分支(Master)
主分支是Git分支的命名约定。它是Git的默认分支。从远程服务器克隆项目后,结果产生的本地存储库只包含一个本地分支。这个分支称为“master”分支。这意味着“master”是存储库的“默认”分支。
合并(Merge)
合并是将分叉的历史放在一起的过程。git merge命令可将git branch创建的数据合并到单个分支中。
源(Origin)
在Git中,“origin”是对最初克隆项目的远程存储库的引用。更准确地说,它用于代替原始存储库的URL,使引用更加简便。
获取/拉取请求(Pull/Pull Request)
Pull(拉取)一词用于从GitHub获取数据。它从远程服务器上获取并合并更改到你的工作目录。git pull命令用于进行Git拉取。
Pull request(拉取请求)是开发人员通知团队成员已完成某个功能的过程。一旦功能分支准备好,开发人员通过远程服务器账户提交拉取请求。拉取请求通知所有团队成员,需要他们审查代码并将其合并到主分支。
Push(推送)
Push(推送)一词是指将本地仓库内容上传到远程仓库的过程。推送是将提交从本地仓库传输到远程仓库的行为。推送有可能覆盖更改,请谨慎操作。
Rebase(变基)
在Git中,Rebase(变基)一词是指将提交的一系列提交移动或合并到一个新的基础提交的过程。变基非常有益,并可在特性分支工作流程的环境中进行可视化处理。
从内容上看,变基是一种将分支的基础从一个提交更改到另一个提交的技术。
Remote(远程)
在Git中,Remote(远程)一词与远程仓库有关。它是一个共享仓库,所有团队成员都用于交换更改。远程仓库存储在代码托管服务上,如内部服务器、GitHub、Subversion等。
对于本地仓库,远程通常不提供项目当前状态的文件树,而是只包含.git版本控制数据。
Repository(仓库)
在Git中,Repository(仓库)类似于VCS使用的数据结构,用于存储一组文件和目录的元数据。它包含文件的集合以及对这些文件所做更改的历史记录。在Git中,仓库被视为项目文件夹。仓库包含了与项目相关的所有数据。不同的项目有不同的仓库。
Stashing(存储)
有时候你想切换分支,但又在当前项目的一个未完成部分上工作。你不想提交一半完成的工作。Git的存储功能允许你这样做。git stash命令可以在切换分支时不提交当前分支。
Tag(标签)
标签用来标记Git历史中的特定点。它用于标记一个重要的提交阶段。我们可以为未来的参考给提交打上标签。主要用于标记项目的初始点,如v1.1。有两种类型的标签。
- Light-weighted(轻量级)标签
- Annotated(注释型)标签
Upstream(上游)和Downstream(下游)
上游和下游是仓库的参考。通常,上游是你克隆仓库的地方(源),而下游则是将你的工作与其他工作结合的任何项目。但这些术语不限于Git仓库。
Git Revert(撤销)
在Git中,revert一词用于撤销某个提交。要撤销一个提交,使用 git revert 命令。这是一种撤销类型的命令,但它不是传统的撤销替代方法。
Git Reset
在Git中,reset一词表示撤销更改。使用 git reset 命令来重置更改。git reset命令有三种核心调用形式,分别如下。
- 软重置
- 混合重置
- 硬重置
Git Ignore
在Git中,ignore一词用于指定Git应该忽略的有意义的未跟踪文件。它不影响已经被Git跟踪的文件。
Git Diff
Git diff是一个命令行实用工具,它是一个多用途的Git命令。当它被执行时,它在Git数据源上运行一个差异函数。这些数据源可以是文件、分支、提交等。它用于显示提交、提交和工作树之间的差异等。
Git Cheat Sheet
Git Cheat Sheet是Git快速参考的摘要。它包含了基本的Git命令和快速安装。Cheat sheet或者crib sheet是一个简要的笔记集,用于快速参考。它被称为Cheat sheet是因为人们可以在没有任何先验知识的情况下使用它。
Git Flow
Git Flow是Git的一个分支模型,由Vincent Driessen开发。它非常适合协作和扩展开发团队。Git flow是一组Git命令,可以用单个命令完成许多仓库操作。
Git Squash
在Git中,squash一词用于将前面的提交合并成一个提交。Git squash是一种将特定的更改分组的技术,然后将其转发给其他人。您可以使用强大的交互式rebase命令将多个提交合并为单个提交。
Git Rm
在Git中,rm就是 remove 的意思。它用于删除单个文件或一组文件。git rm的关键功能是从Git索引中删除已跟踪的文件。此外,它也可以用于从工作目录和暂存索引中删除文件。
Git Fork
一个fork是一个仓库的粗略副本。fork一个仓库可以让您自由地测试和调试更改,而不会影响原始项目。
使用fork来提出bug修复的更改是一个很好的用法。要解决您发现的错误的问题,您可以:
- fork该仓库。
- 进行修复。
- 向项目所有者发送pull请求。