Git的前世今生

作者: 程序员丶星霖 | 来源:发表于2018-10-19 22:05 被阅读4次

一、Git是什么?

Git是用来做版本控制的。Git是目前世界上最先进的分布式版本控制系统(没有之一),当然把“分布式”三个字去掉也是成立的。

目前市场上的版本控制工具主要分为集中式的版本控制工具和分布式的版本控制工具两种。

1.1、集中式版本控制

集中式的版本控制工具以SVN为代表,它有一个中央服务器控制着所有的版本管理,其他所有的终端可以对这个中央库进行操作,中央库保证版本的唯一性。

如果中央服务器因为某种原因被毁,那么整个项目的版本控制就完蛋了。

集中式版本控制的劣势:

  • 容灾性差
  • 通信频繁

1.2、分布式版本控制

分布式版本控制的典型就是Git,它的终端可以获取到中央服务器的完整信息,可以在终端做各种操作,获取各种信息而不需要与服务器通信。就算服务器出现问题被毁,各个终端依然有完整的备份,而且Git的各种操作可以全部发生在本地,只需要最终完成后提交服务器即可,而不需要频繁通信。

1.3、Git核心思想

Git作为分布式的版本控制工具,其核心在于以下几个方面:

  • 分布式。各个Repo都具有完整的镜像,虽然在协作中通常会指定一台中心服务器,但分布式的思想是Git的第一个重要概念。
  • 快照。Git每次记录的都是完整的Repo信息,而不是每个版本之间的差异,这也是Git速度快的原因之一。
  • 状态区。只有掌握了不同状态区中的状态,才能了解Git的核心思想。
  • 分支。分支是Git最重要的功能之一,利用好分支可以让Git的使用如虎添翼。

二、Git的基本配置

查看Git的版本

$ git --version
git version 2.14.1.windows.1

查看当前的Git配置信息

$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
......

显示所有项目通用的配置信息

$ git config --list --global
user.name=huangxiaolei
user.email=18200399036@163.com
http.sslverify=false

通过指定的配置名来获取单独的配置信息

$ git config user.name
huangxiaolei

通过上面的指令可以查看当前的Git配置。如果没有对Git进行配置的话,需要先对Git的Global参数进行基本的配置后才能使用。

$ git config --global user.name huangxiaolei

$ git config --global --add user.name huangxiaolei user.email 18200399036@163.com

删除一个配置

$ git config --global --unset user.name huangxiaolei

显示所有文件

$ ll -a

total 72
drwxr-xr-x 1 huangxiaolei 1049089     0 十月 15 11:04 ./
drwxr-xr-x 1 huangxiaolei 1049089     0 八月 27 17:27 ../
drwxr-xr-x 1 huangxiaolei 1049089     0 十月 15 11:12 .git/
-rw-r--r-- 1 huangxiaolei 1049089   145 八月 28 17:50 .gitignore
drwxr-xr-x 1 huangxiaolei 1049089     0 八月 27 17:29 .gradle/
drwxr-xr-x 1 huangxiaolei 1049089     0 十月 15 13:52 .idea/
drwxr-xr-x 1 huangxiaolei 1049089     0 九月  6 14:35 app/
......

在.git隐藏文件夹中的config文件保存了一个Git项目的所有配置信息,而个人相关的配置信息都保存在Git的个人配置中。

给一些指令起一个简称或者别名(Alias)以取代原本比较复杂的指令。

$ git config --global alias.st status

通过上面的配置就可以使用st来取代status指令。

一个Git log的Alias。

$ git config --global alias.lg "log --color --graph  --pretty=format:'%Cred%h%Creset%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)<%an>%Creset'--abbrev-commit"

学海无涯苦作舟

Android成长录.jpg

相关文章

  • Git的前世今生

    一、Git是什么? Git是用来做版本控制的。Git是目前世界上最先进的分布式版本控制系统(没有之一),当然把“分...

  • Git 的前世今生

    Git 是一个分布式版本控制系统,缔造者是大名鼎鼎的林纳斯·托瓦茲 (Linus Torvalds),Git 最初...

  • GIT学习笔记

    一、GIT的前世今生 GIT是VCS(Version Control System,版本控制系统)中的一代新秀,由...

  • Git 学习笔记

    2017-02-15-Git.md Git 的前世今生 这个要从开源运动说起,1991年Linus创立了开源的Li...

  • 提交问题答案

    一、用五百字介绍git的前世今生 git版本控制系统是由Linux之父Linus开发,被誉为继其开发Linux之后...

  • Git 学习笔记 (1):Git 概述

    1.1 前世今生 Git 是目前世界上最先进的分布式版本控制系统,它的诞生源于 “管理 Linux 系统代码” 的...

  • 将军在上之男昭女惜重生三世千年孽缘

    前世!今生!来世再续! 前世欠谁!今生还!来世再续前缘! 前世因!今生续!来世果!

  • 人死,并非如灯灭……

    “今生,是前世的“来生”,是来生的“前世”。在今生中,我们能见到自己的前世与来生。回溯前世,是为了改善今生;回到今...

  • 前世今生来世缘

    谈何前世情 今生还 今生情 来世还 前世孽债 前世还 未了 今生还 今生欠 今生还 谈何来世还 来世欠 来世还 能...

  • iOS Device ID 的前世今生

    iOS Device ID 的前世今生 iOS Device ID 的前世今生

网友评论

    本文标题:Git的前世今生

    本文链接:https://www.haomeiwen.com/subject/toqyzftx.html