解释Git的基本术语和命令各种技术术语和操作命令。”同样,了解Git的工作流程及其关键概念,将有助于您在日常使用Git的版本控制系统时实现更高效的代码管理。Git到底是什么?喜欢在其他版本控制系统(VCS)中,Git可以用来跟踪同一块数据信息(或文件类型)的不同版本。但是,Git之所以能从其他VCS中脱颖而出,主要是因为它的分布式特性,或者说分布式版本控制系统(DVCS)。在这个环境下,每个开发者的主机充当一个“节点”或“集线器”。为了保持数据的完整性,Git将每一个文件系统的变化都视为新的数据。因此,Git的基本框架结构由各种分支,用户初始项目位于“master”分支,这种方式不仅有利于高效的功能开发,也便于bug修复和代码review。同时,频繁的t同步工作可以继续执行对等节点之间的合并等操作。Git是由LinusTorvalds开发的,其背后的理念主要体现在“速度”上。“易于分支和合并”、“数据完整性”和“更大规模的协作”是它的三大特点。Git可以在本地存储用户整个项目的历史,并允许用户快速访问旧版本的数据。Git工作流:Git文件的三种状态众所周知,很多VCS采用两层架构:repository和workingcopy。但是,Git采用三层结构:工作目录、临时存储区和本地存储库。因此,对于同一段代码,Git提供了一种通过三个层次在不同时间间隔和版本中保存当前工作的方法。同时,Git利用三个阶段,在每个级别存储相同代码(或对象)的不同(也可能相同)状态。***,在初始化(或克隆)阶段,Git项目会在本地计算机上创建一个“工作目录”,以便用户可以开始编辑源代码。在源代码的开发阶段,您可以自由修改文件和目录,您可以选择您喜欢的编辑器来添加、删除、移动、重命名或复制。当然,我更喜欢使用vim,它是最高效、最大的文本编辑器(详见https://www.vim.org/)。完成此编辑后,您可以使用“Gitadd”命令暂存您的更改,即“暂存区”中的“索引”,并显示接下来将要提交的内容的预览。然后,在暂存区中暂存第一组代码后,您可以在工作目录中进行更多编辑。在这里,工作目录和暂存区将有当前项目的不同快照(或版本)。为了同步以上两个阶段,你只需要通过Gitadd将你最近的改动暂时存放在工作目录中。除了添加代码更改之外,如果要撤消索引中的任何暂存更改,则需要执行不同的Git命令。而如果这个阶段不需要做任何改动,可以使用“Gitcommit”以提交的方式将代码移动存储到本地Git仓库中。即commit命令保证了上述所有三个阶段的项目都有相同的快照,并保持Git的三个阶段相互同步。此外,“Git状态”命令可以显示当前的工作树状态,以及您的文件所处的阶段。Git的关键术语和命令您之前可能使用过一些比较流行的VCS,包括:系统,http://savannah.nongnu.org/projects/cvs),SVN(ApacheSubVersioN,https://subversion.apache.org/),ClearCase(https://www.ibm.com/us-en/marketplace/rational-clearcase)和BitKeeper(http://www.bitkeeper.org/)等。Git虽然也是一个VCS,但是它使用自己的文件系统架构来处理源代码。因此,与早期各种VCS相比,Git有自己的一些术语和命令方式。Repository它使用计算机上的本地位置来存储项目的整个快照,以便可以存储和检索每个小的更改。用户可以轻松查看和检索存储库的日志。也就是说,您可以跳转到代码的任何旧状态。提供项目最新代码的本地工作副本的工作目录。索引(暂存区,缓存)索引可以理解为用户下次提交的快照。通过Gitadd在工作目录中暂存或添加代码后,代码将移至此处。就像内存中的缓存一样,暂存区充当工作目录(开发代码的地方)和本地存储库(代码所在的地方)之间的中间层。在这一层,您可以快速预览即将提交的项目的快照。当然,您仍然可以编辑(添加、修改或删除)索引中的代码。此外,您可以在此处恢复项目的旧版本(或状态)。提交提交是项目的最新快照(状态)。如下图所示,每个提交都会被分配一个唯一的提交ID。并且所有提交日志都存储在本地存储库中。作为Git对象,提交存储各种属性,包括:提交ID、作者姓名、创建日期和提交消息(标题和文本)。githash(或SHA-1)上面提到的唯一“提交ID”,通常称为“githash”或“SHA-1”(参见https://en.wikipedia.org/wiki/SHA-1)。通常,每个文件系统修改(添加、删除、编辑、移动、复制、重命名和文件权限等)都被视为一个文件。同时,其内容会被转换成唯一的SHA-1码。上面显示的提交ID是:8db083e7df7c9241e640b66c89c6f02649ac885a。在实际使用中,一般参考其前7位唯一编号,即8db083e。当然,您不必记住整个哈希ID(我们将在下面介绍),Git使用分支和标签等引用来处理这些提交ID(哈希)。分支分支是一条独立的开发“平行线”。分支使您可以在隔离的工作区中处理同一段代码。由于每个分支都有自己的项目历史副本,您可以在分支上根据自己的代码进行开发,并轻松地相互合并。Master分支当一个项目***被创建为Git项目时,master分支是它主要的本地默认分支。HEADHEAD是每个分支上最新提交的快照。每个分支都有一个提交ID,如前所述,它是一个SHA-1短名称,或者是对指针的引用。HEAD始终指向分支的最新提交(代码),并且在每次提交时自动向前移动以指向最新的提交ID。此外,当分支指向比最新提交更旧的提交时,就会出现“分离的HEAD”的概念。可以看出,一旦我们有了***提交ID的引用“HEAD”,我们就真的不必记住我们最近处理的提交ID。checkout这个命令会切换到指定的分支,并显示当前项目的状态。同时,它还能够恢复以前工作的树文件。克隆克隆是远程存储库的工作副本。“gitclone”命令能够下载远程存储库并在本地计算机上创建工作目录。此外,该命令还可以存储各种远程处理过程,或从本地存储库到远程存储库的指针引用。上图显示了一个名为“learn_branching”的本地存储库使用URL跟踪一个名为“origin”的远程存储库:https://github.com/divyabhushan/learn_branching.git。结论希望上面提到的基本概念能让您更好地理解使用Git的各种有效方法。当然,Git还包括更多的概念和实用命令。您可以使用“githelp-a”来拉出完整的命令列表,并使用“githelp”来深入了解命令。原标题:Git:BasicTermsandCommandsExplained,作者:DivyaBhushan
