IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 精通Git(一)——入门 -> 正文阅读

[开发工具]精通Git(一)——入门


前言

本章主要介绍Git的入门知识。我们首先会讲述版本控制工具的一些背景,然后介绍如何在你在自己的系统上安装、配置和运行Git。学完本章,你就明白Git是怎么来的、为什么需要Git、为什么需要Git,并掌握使用Git的基础知识。
在这里插入图片描述

关于版本控制

什么是“版本控制”,为什么需要它?版本控制是一套系统,该系统按时间顺序记录某一个或某一系列文件的变更,让你可以查看其以前的特定版本。本书以软件源代码文件为例子讲解了版本控制的方法,但实际上这种方法对于计算机上几乎所有文件类型都适用。

适用版本控制系统(VCS),你可以将文件或整个项目恢复到先前的状态,还可以对比文件随时间的变更,查看什么人最后做出的更改可能会造成麻烦,谁在何时引入了一个问题,等等。使用版本控制系统通常意味着,如果你把事情搞砸了或是丢了文件,都可以轻而易举的恢复原状。而且,你要为所有这些福利付出的开销也很低。

本地版本控制系统

很多人控制版本的方法是将文件复制到另一个文件目录下(如果他们够聪明,还会给目录加上时间戳)。这种做法之所以常见,是因为它实现起来非常的简单。然而它又非常容易导致错误,你很容易忘记之前所处的目录,不小心写入了错误文件,或者把不该覆盖掉的文件给覆盖掉了。
为了解决这个问题,开发人员在很久以前就开发了一些本地版本控制系统,使简单的数据库来保存文件的所有变更。
RCS是一个常用的VCS(Verison Control System),至今还部署在许多计算机上。流行的Mac OS X操作系统中,只要你安装了开发者工具,就会包含一个rcs命令。RCS会在磁盘上以一种特殊的格式保存补丁集(patch set,也就是文件之间的差异)。通过叠加补丁来将文件恢复到某个历史状态。
在这里插入图片描述

集中式版本控制系统

另一个主要的问题,是不同操作系统上开发人员之间的协作。为了解决这个难题,集中式版本控制系统(Centralized Version Control System,CVCS)应运而生。像CVS,Subversion以及Preforce这类系统,都有一个包含文件所有修改版本的单一服务器,多个客户端可以从这个中心位置检出文件。多年来,这已成为版本控制的标准。
在这里插入图片描述

相比于本地版本控制系统,它的优势就是支持不同系统上的开发人员协作开发,也可以对项目进行管理等。
缺点就是:服务器宕机了,就什么都没有了。

分布式版本控制系统

分布式版本控制系统(Distributed Version Control System,DVCS)就是为了解决CVCS问题而出现的。对于分布式版本控制系统(比如Git、Mercurial、Bazaar或Darcs)来说,客户端并非仅仅是检出文件的最新快照、而是对代码仓库(respository)进行完整的镜像。这样一来,不管是那个服务器出现故障,任何客户端都可以使用自己的本地镜像来恢复服务器。每次检出操作实际上都是对数据的一次完整备份。
在这里插入图片描述

Git简史

同许多伟大的事物一样,Git的诞生伴随着些许颠覆式的创新以及激烈地争论。
Linux内核是一个超大规模的开源软件项目。在Linux内核大部分的维护时间里(1991~2002)其更新都是通过传递补丁和归档文件来实现的。在2002年,Linux内核项目开始采用一个叫做BitKeeper的专有分布式版本控制系统。
2005年,Linux内核开发社区与BitKeeper的研发公司关系破裂,该公司收回了软件的免费使用权。这促使Linux开发社区(尤其是Linux之父linus)在汲取BitKeeper使用过程中的经验教训的基础上,开发出了自己的版本控制系统。新系统目标如下:

  • 速度快
  • 设计简洁
  • 对于非线性开发强有力的支持(数以千计的并行分支)
  • 完全的分布式设计
  • 能够有效地处理像Linux内核这种大型项目

三种状态

在Git中,我文件可处于一下三种状态之一:已提交(committed)、已修改(modified)和已暂存(staged)。已提交表示数据已经被安全地存入本地数据库中。已修改表示已经改动了文件,但尚未提交到数据库。已暂存表示对已修改的文件的当前版本做出了标识并将其加入下一次要提交的快照中。
由此便引入了Git项目中三个主要的区域:Git目录、工作目录以及暂存区。
在这里插入图片描述
Git目录
是保存Git项目元数据和对象数据库的地方。这是Git最重要的部分,也是从其他计算机中克隆仓库时要复制的内容。
工作目录
是项目某个版本的单次检出。这些文件从Git目录下的压缩数据库内被提取,放置在磁盘上以供使用或修改。
暂存区
是一个文件,一般位于Git目录中。它保存了下次要提交内容的全部相关信息。有时候它也被称为“索引”,不过通常还是叫做暂存区。
Git的提交流程

  1. 修改工作目录中的文件;
  2. 暂存文件,将这些文件的快照加入暂存区;
  3. 提交暂存区中的文件,将快照永久保存在Git目录中。

安装Git

Windows

推荐教程

Linux

我这里使用的是Ubuntu系统
打开终端,输入以下命令
sudo apt-get install git-all
在这里插入图片描述

源码安装

Kernel.org
在这里插入图片描述
git官网
在这里插入图片描述

因为我前面已经用命令行下载了Git,这里就不展示用源码安装了。下面告诉大家防范

  1. 将下载下来的文件上传到Linux上的某个路径下
  2. 下载相关依赖sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
  3. sudo apt-get install asciidoc xmlto docbook2x
  4. 进行解压tar -zxvf git-x.x.x.tar.gz
  5. 进入Git目录 cd git-x.x.x
  6. 检查本机系统配置make configure
  7. 使配置生效./configure --prefix=/usr
  8. 编译make all doc info
  9. 安装sudo make install install-doc install-html install-info
    安装完之后,后续的更新可以通过git自身来获得,执行如下命令
    git clone git://git.kernel.org/pub/scm/git/git.git

Git的配置

系统配置
cat /etc/gitweb.conf git config --system
用户个人配置
cat ~/.gitconfig git config --global
在这里插入图片描述

用户身份

上面是我之前配置的,大家自己配置可以使用命令
git config --global user.name "jacky"
git config --global user.email gitisthebest@git.com
在这里插入图片描述
也可以使用git config --list查看所有的配置
在这里插入图片描述

个人编辑器

可以使用命令git config --global core.editor <编辑器可执行程序路径>
我是直接使用的vim,Windows上有Git自带的Git Bash
看大家自己的兴趣吧。

帮助

git help config
在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:48:32  更:2022-09-21 00:49:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:41:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码