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 的基本原理,以及配置
欢迎关注公众号【前沿AI】

一、集中式版本控制 vs 分布式版本控制

Git 是分布式的版本控制工具;

1)集中式版本控制

集中式版本控制实际上是版本库集中存放在中央服务器中,个人电脑不包含版本库的修改记录【即只包含当前的修改,没有任何历史版本】;

这样,工作的时候需要从版本库中获取最新的代码;工作工作结束后,需要将本地代码推送到中央服务器;

在这里插入图片描述
但是这种方法存在很严重的缺点:

  1. 安全系数低:因为版本是集中存放的,所以一旦中央服务器出现问题,那么所有的历史版本将会丢失;
  2. 因为本地没有历史版本,所以集中式版本控制必须联网才能工作;就是需要经常地从中央服务器拉取代码或者推送到中央服务器,如果网速很慢,就很浪费时间;

2)分布式版本控制

分布式版本控制的特点是没有中央服务器,每一台电脑都包含所有的历史版本;当两个人或者多个人合作的时候,只需要将自己的修改推送给对方就可以;

如果两个人在同一个分支(后面会讲到),修改了同一个文件,Git 会自动进行合并,当合并产生冲突而不能解决的时候,通常可以使用外部合并工具,如 BeyondCompare ,来解决;

在这里插入图片描述
分布式版本控制的优势:

  1. 不需要联网:自己的电脑就有所有的历史版本,当自己修改结束以后,直接修改自己本地的版本库即可;当多人合作的时候,隔一段时间相互推送即可;
  2. 不必担心历史版本丢失:因为每个人电脑中都包含所有的历史版本,因此,只要不是所有人的历史版本都丢失了,其他人只要从未丢失的人那里复制一份即可;

但是,实际使用中,如果很多人之间相互推送也是比较麻烦的,所以会选择一台服务器作为“虚拟中央服务器”,所有都从这个“中央服务器”拉取历史版本,然后所有人的修改都推送到“中央服务器”;

这样做并不是变成了集中式版本控制,只是为了当合作者比较多的时候,交换代码比较方便。比如,我们通常使用 GitLab 作为“虚拟中央服务器”,或者说远程仓库,但是没有这个“中央服务器”同样可以工作,只是比较麻烦

二、Git 原理

Git 中文件可能处于下面三个状态之一:已修改(modified)、已暂存(staged)、已提交(committed)

对应于这三种状态 Git 项目会有三个阶段:工作区(working directory)、暂存区(Staging Area)、版本库(.git directory / Repository)

这里讲的版本库是本地版本库,还有一个远程版本库,就是我们上一节中讲到的为了交换代码的方便而配置的“远程服务器”

1) 三个基本状态的理解:

  1. 已修改:对文件进行了修改,但是还没有保存到数据库中;处于已修改状态的文件位于工作区
  2. 已暂存:对一个已修改的文件的当前版本做了标记,这样它就包含在下次提交的快照中;处于已暂存状态的文件位于暂存区;
  3. 已提交:数据已经安全地保存在本地数据库中;处于已提交状态的文件位于版本库;

在这里插入图片描述

2) 三个阶段的理解:

  1. 工作区:对文件的任何修改都在工作区;更专业的说法是:将某一个历史版本从 Git 仓库的压缩数据中提取出来,放在磁盘上供使用修改;
  2. 暂存区:凡是使用 git add 命令操作后的文件处于暂存区;实际上暂存区是一个文件,保存了下次将要提交的文件列表信息;
  3. 版本库:凡是使用 git commit 命令操作之后的文件都存放在版本库;这里是 Git 用来保存项目的元数据和对象数据库的地方,是最重要的部分;

三、Git 的安装与配置

Ubuntu 系统:

sudo apt install git-all

Windows 系统:
官网地址

配置:

每一台计算机上只需要配置一次 Git 即可

1) 相关配置文件的理解

  1. /etc/gitconfig 文件:包含系统上每一个用户以及仓库的通用配置;执行 git config 时加上 --system 选项会读写这个文件中的内容【需要 root 权限】
  2. ~/.gitconfig 或者 ~/.config/git/config 文件:只包含当前用户的配置信息;执行 git config 时加上 --global 选项会读写这个文件中的内容;
  3. .git/config 文件:只针对当前仓库的配置;当进入某一个 Git 仓库时候,执行 git config 默认是读写这个文件夹;

2) 配置用户信息

安装 Git 之后第一步就是设置用户名和邮箱信息,因为每一个 Git 提交都会使用这个信息:

# 下面的配置会修改该用户下所有的 git 配置
git config --global user.name "your_name"
git config --global user.email "your_email"

# 针对单一 git 项目进行修改
git config user.email "you@example.com"
git config user.name "Your Name"

当想要针对不同的项目使用不同的用户名和邮箱时候,只需要修改当前项目下的配置文件即可;

3) 检查配置信息

git config --list
  开发工具 最新文章
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常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:26:16  更:2021-10-06 12:28:19 
 
开发: 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年12日历 -2024/12/23 14:57:25-

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