前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git基础知识(一)

Git基础知识(一)

作者头像
zx钟
发布2019-07-19 14:28:11
4990
发布2019-07-19 14:28:11
举报
文章被收录于专栏:测试游记测试游记

Git的特点

直接记录快照,而非差异比较

概念上来区分,其它大部分系统以文件变更列表的方式存储信息. 这类系统(CVS、Subversion、Perforce、Bazaar等)将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。 Git 更像是把数据看作是对小型文件系统的一组快照。每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。Git 对待数据更像是一个快照流。

近乎所有操作都是本地执行

在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。 使用其它系统,做到如此是不可能或很费力的。 比如,用 Perforce,你没有连接服务器时几乎不能做什么事;用 Subversion和CVS,你能修改 文件,但不能向数据库提交修改(因为你的本地数据库离线了)。

Git保证完整性

Git 中所有数据在存储前都计算校验和,然后以校验和来引用。若你在传送过程中丢失信息或损坏 文件,Git 就能发现。 Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。

这是一个由 40 个十六进制字符(0-9 和 a-f)组 成字符串,基于 Git 中文件的内容或目录结构计算出来。 SHA-1 哈希看起来是这样:

代码语言:javascript
复制
24b9da6552252987aa493b52f8696cd6d3b00373

Git一般只添加数据

你执行的 Git 操作,几乎只往 Git 数据库中增加数据。 很难让 Git 执行任何不可逆操作,或者让它以任何方式清 除数据。

Git的三种状态

  • 已提交(committed):数据已经安全的保存在本地数据库中
  • 已修改(modified):修改了文件,但还没保存到数据库中
  • 已暂存(staged):对已修改的文件的当前版本做了标记,使它包含在下次提交的快照中

Git项目的三个工作区域:Git仓库,工作目录,暂存区域

  • Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
  • 工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
  • 暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作索引,不过一般说法还是叫暂存区域。

基本的Git工作流程

  1. 在工作目录中修改文件。
  2. 暂存文件,将文件的快照放入暂存区域。
  3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。

三个工作区域

起步

使用git config工具来帮助控制Git外观和行为。

配置用户信息

当安装完 Git 应该做的第一件事就是设置你的用户名称邮件地址。每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改

代码语言:javascript
复制
git config --global user.name 你的姓名
git config --global user.email 你的邮箱

例如:

git config --global user.name "John Doe" git config --global user.email johndoe@example.com

检查配置信息

git config --list:列出所有Git当前能找到的配置

列出所有Git配置

git config <key>:通过指定的方式查看某一项

指定查看用户名

获取帮助

合理使用git自带的帮助文档,可以解决大部分的问题

例如git help config

还有其他方式找到Git命令的使用手册。

git help git- -help man git-

Git基础

有两种方式开始Git的学习:在现有项目或目录下用Git进行管理,从服务器克隆一个现有的Git仓库

在现有目录中初始化仓库

使用git init就可以初始化一个空的Git仓库

初始化仓库

其中.git文件夹中包含了初始化Git仓库中所有的必须文件,这些文件是Git仓库的骨干。

克隆现有仓库

以我在GitHub上的一个项目为例:https://github.com/zx490336534/spider-review。

输入url地址打开页面后点击Clone or download把弹出框中的地址复制出来:https://github.com/zx490336534/spider-review.git

克隆

在本地找一个文件夹

代码语言:javascript
复制
git clone https://github.com/zx490336534/spider-review.git

克隆到本地

这样克隆会自动在当前目录下新建一个项目同名的文件夹,也可以自定义一个名称

代码语言:javascript
复制
git clone https://github.com/zx490336534/spider-review.git 666

克隆文件至自定义的地方

记录每次更新到仓库

文件的状态变化周期

这一小节的目标的学会这一个文件的状态变化周期图

从最上方的箭头开始

Add the file:从Untracked指向Staged,也就是从未跟踪暂存区,需要学会git statusgit add两个指令

首次新建的文件都是untracked状态(未跟踪),此时需要git add到暂存区,Git便会在暂存区中生成一个该文件的索引。

代码语言:javascript
复制
touch README.md 
git add README.md 
git status

img

touch README.md:创建一个名为README.md的文件,对应Untracked对象的创建

git add README.md:把新建的README.md文件提交到暂存区,对应Add the file

git status:查看文件处于什么状态

从上面操作可以看出,如果我新建了一个文件,但是没有使用git add,那么它就还是Untracked,可以结合git status进行试验

Untracked

开始下面一个箭头Edit the file,但是我们需要一个Unmodified状态的文件,在学习了Add the file流程之后我们拿到了一个Staged状态的文件README.md,从图中可以看出,从Staged变为Unmodified需要经过Commit流程。

那我们暂时先学习Commit流程:

提交

使用的语句为git commit -m '描述信息'

代码语言:javascript
复制
git commit -m '从Staged状态变为Unmodified状态'

再使用git status可以看到已经没有之前绿色的语句了(新文件: README.md)

下面返回正题,学习Edit the file,使用编辑器修改一下README.md文件

修改文件

修改之后使用git status查看文件当前的状态

修改文件

这样就完成了Edit the file流程了,通过阅读提示信息可以知道,我们要用git add <文件>更新要提交的内容。从Add the file流程可以看出,git add的作用就是把东西放入Staged(暂存区),所以使用这句指令就完成了Stage the file流程了

Stage the file流程

最后最后还有一个Remove the file流程,我们使用上面学过的Commit流程把README.md文件的状态变成Unmodified

代码语言:javascript
复制
git commit -m '修改README.md'

使用git rm READE.md就能删除处于Unmodified的文件了,可以看到提示信息是绿色的,所以还需要一步commit操作

删除

代码语言:javascript
复制
git commit -m '删除README.md'

删除后查看状态

我们可以用git log查看提交历史,从图中可以看出,我们全部commit操作都被记录了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Git的特点
    • 直接记录快照,而非差异比较
      • 近乎所有操作都是本地执行
        • Git保证完整性
          • Git一般只添加数据
            • Git的三种状态
              • 基本的Git工作流程
                • 起步
                  • 配置用户信息
                  • 检查配置信息
                  • 获取帮助
                • Git基础
                  • 在现有目录中初始化仓库
                • 克隆现有仓库
                  • 记录每次更新到仓库
              相关产品与服务
              数据库
              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档