Git 知识整理(一)基础知识和安装配置

一、Git 简史

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
Git 系统制订的若干目标:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统

二、版本管理控制工具演进

2.1 集中式与分布式

2.2.1 集中式版本管理

在这里插入图片描述集中式版本管理系统中,

  • 中央服务器集中管理版本仓库, 保存所有文件的修订版本,
  • 客户端协同工作时连接到服务器,取出最新文件或提交更新,本地工作区只有当前文件快照。
  • 缺点是如果发生服务器故障, 所有客户端将无法提交,还有可能丢失所有版本变更历史。

2.1.2 分布式版本管理

在这里插入图片描述
分布式版本管理系统中,

  • 客户端并不只提取最新版本文件快照,而是把整个代码仓库完整的克隆下来
  • 服务器发生故障, 可以通过任何一个镜像仓库恢复。

2.2 不同版本管理工具对待数据的方法

2.2.1 其他的版本管理工具

在这里插入图片描述
其他工具将保存的信息看作是基本文件和随时间逐步累积的差异。

2.2.2 Git

在这里插入图片描述
GIT 每次更新都对全部文件制作一个快照(本次提交没有修改的文件,只保存一个指向该文件之前存储的链接。如 version 3 版本中的 A1,用虚线框表示), 然后保存快照的索引。

三、Git 介绍

3.1 Git 工作流程

在这里插入图片描述

3.1.1 工作区、暂存区和版本库

在这里插入图片描述

工作区

工作目录是用户实际工作的地方,是对项目某个版本提取出来的内容。这些从仓库的压缩数据库中提取出来的文件,供用户使用或修改。

暂存区域

暂存区域其实是一个文件,一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

项目文件夹中文件的结构

在这里插入图片描述 工作区、暂存区和本地仓库通常放置在项目根目录下,如上图所示,

  • 用户工作文件是用户使用和修改的项目文件
  • 暂存区放置在 . git 文件夹
  • .git 文件夹其实就是存放版本管理的元数据和对象数据库的本地仓库
  • .gitignore 用于配置需要通过 Git 管理的内容。

3.1.2 Git 工作流程

基本的 Git 工作流程如下:

  1. 新建项目,工作文件夹下创建本地仓库(.git 文件夹)
  2. 暂存文件,将文件的快照放入暂存区
  3. 提交更新,将暂存区快照永久性存储到本地仓库,产生新的文件版本
  4. 推送到远程仓库,将本地仓库更新同步到远程仓库
  5. 拉取更新, 将他人推送到远程仓库的更新拉取到本地工作区
  6. 克隆远程仓库,建立远程仓库本地镜像,用户可以开展工作

3.2 版本管理文件状态

在这里插入图片描述

状态说明

状态说明
Untracked (未跟踪)在工作区新建的文件, 未被纳入 Git 版本管理
Staged(暂存)文件快照放入暂存区
Unmodified(未修改)文件提交到版本库后,文件当前为未修改
Modified(已修改)对文件再次修改后的状态

四、安装配置

4.1 安装

Git 下载地址: https://git-scm.com/download

4.2 Git 基本配置

4.2.1 配置文件存放位置

Linux 变量存储在三个不同的位置:
  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。
  2. ~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。
  3. 当前使用仓库的 Git 目录中的 config 文件(就是 .git/config):针对该仓库。
    每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。
Windows 系统
  1. 一般情况下是 C:\Users\$USER\.gitconfig 文件。

4.2.2 配置

用户信息

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

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

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

文本编辑器

当 Git 需要你输入信息时会调用它。 如果未配置,Git 会使用操作系统默认的文本编辑器,通常是 Vim。
如果你想使用不同的文本编辑器,例如 Emacs,可以这样做:
$ git config --global core.editor emacs

如果要改成 notepad 可以这样做:
$git config --global core.editor notepad

检查配置

如果想要检查你的配置,可以使用 git config --list 命令来列出所有 Git 当时能找到的配置。
$git config --list

或查看某项具体配置:
$git config <key>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值