Git学习笔记(一)基础概念

场景描述

  • 场景一:备份

    在我们实际的开发场景中,一个完整的应用程序所需要的开发周期往往长达几个月甚至更久,假设我们的模块已经完成,就在即将Release之前的一瞬间,电脑突发故障,硬盘损坏,那么我们几个月的努力就付之东流了。

  • 场景二:还原

    在实际的开发过程中,一个模块的完成往往需要经过无数次的修改和调整。如果我们修改后的代码出现了BUG,由于代码已经修改了无数个版本,我们怎么才能让代码回到开始的状态呢?

  • 场景三:协作

    小刚和小强先后从文件服务器上下载了同一个文件:Analysis.java。小刚在Analysis.java文件中的第30行声明了一个方法,叫count(),先保存到了文件服务器上;小强在Analysis.java文件中的第50行声明了一个方法,叫sum(),也随后保存到了文件服务器上,于是,count()方法就只存在于小刚的记忆中了。

  • 场景四:追溯

    老王是另一位项目经理,每次因为项目进度挨骂之后,他都不知道该扣哪个程序员的工资!就拿这次来说吧,有个Bug调试了30多个小时才知道是因为相关属性没有在应用初始化时赋值!可是二胖、王东、刘流和正经牛都不承认是自己干的!

什么是Git?

Git的概念及好处

Git 是一个用于管理源代码的分布式版本控制系统。icon-default.png?t=N7T8https://nulab.com/zh-cn/learn/software-development/git-tutorial/git-basics/what-is-git/它最主要的作用就是对我们的代码进行版本控制,通过版本来进行代码的备份和更新,能够完美的解决上面四种场景中出现的问题。

使用 Git,我们可以轻松访问源代码的修改历史记录,同时可以看到版本那些地方进行了更改以及更改的人。并且因为整个 Git 历史都存储在共享存储库中,所以 Git 可以防止旧版本的无意覆盖。

Git三大组件

一个完整的Git项目通常由三大组件构成:

  1. 存储库:存储库是跟踪项目文件所有更改的“容器”。它保存着我们团队所做的所有提交。我们可以使用 git 日志命令访问提交历史记录。(远程仓库Remote和本地仓库Repository)。
    1. 远程仓库Remote:托管在远程服务器上,并在多个团队成员之间共享。
    2. 本地仓库Repository:单个用户托管在本地机器上。
  2. 工作树:工作树或工作目录由我们本地正在处理的文件组成。我们可以将工作树视为一个文件系统,您可以在其中查看和修改文件。(工作区Workspace)
  3. 索引:索引或暂存区是准备提交的地方。暂存后,工作树中的文件将与存储库中的文件进行比较。对工作树中文件的更改在提交之前被标记为已修改。(暂存区Index)

Git的工作流程及文件状态

Git的工作流程如下图所示:

 它的主要组成部分我们在上面已经介绍过了,图中箭头上的英文单词都是对Git进行操作的相应命令,以下是这些命令的简单介绍:

  1. clone(克隆):从远程仓库中克隆代码到本地仓库
  2. checkout(检出):从本地仓库中检出一个仓库分支然后进行修改
  3. add(添加):在提交前先将代码提交到暂存区
  4. commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. fetch (抓取): 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
  6. pull (拉取): 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
  7. push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

根据上面的命令我们其实就可以推断出文件的三种状态:

  • 已修改(modified):文件已经被修改,但还没有被提交到仓库。这表示文件的内容已经在工作区改变了,但这些改变还没有被记录仓库。
  • 已暂存(staged):文件已经被添加到下一次提交中。当使用git add命令添加一个文件到暂存区时,这个文件的状态就是已暂存。
  • 已提交(commited):文件已经提交到了仓库中。

当我们使用git status命令来查看当前工作目录中所有Git跟踪的文件的当前状态时,还有可能出现下面这种状态:

  • 未跟踪(Untracked):这表示文件存在于文件夹中,但尚未添加到 Git 仓库中,因此不参与版本控制。使用 git add 命令将其状态更改为 已暂存(Staged)

以上就是Git相关的一些简单的基本概念,后续还会持续更新Git入门安装,Git常用命令等相关笔记。

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值