Git 学习笔记之起步篇——相关知识简介

1. 起步

1.1了解版本控制

Git 常用于版本控制,那么何为版本控制?
版本控制——记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出是谁更改了哪个地方,找出出现问题的原因等。

  • 本地版本控制系统
    采用某种简单的数据库来记录文件的历次更新差异,无法做到多人协同工作。
  • 集中化的版本控制系统
    服务器集中管理,,保存所有文件的修订版本,协同工作的人们通过客户端连接到这台服务器,取出最新的文件或提交更新。
    优点:每个人可在一定程度上看到项目其他人在做什么,管理员也可以轻松掌握每个开发者权限,且远比在各个客户端上维护本地数据库轻松。
    缺点:若中央服务器出现故障,则协同人员无法工作,若磁盘损坏又没有恰当备份,则将丢失所有数据,只剩下各自机器上的数据。
  • 分布式版本控制系统
    客户端不止提取最新版本文件快照,而是将代码仓库完整地镜像下来,即使服务器发生故障,本地仍有数据,可从本地仓库回复。
    即每次克隆操作,都是一次对代码仓库的完整备份。
    且许多这类系统都可以指定和若干不同的远端代码仓库进行交互。

1.2 Git 简介

  • 直接记录快照,而非差异比较
    Git 更像一个小型的文件系统,每一次提交或进行其他操作时,Git 会对当时的全部文件制作一个快照并保存这个快照的索引,若文件没有更改,不再重新存储,保留一个链接指向之前存储的文件。
    即指向所有当前版本的最新文件。

  • 近乎所有操作都是本地执行
    因为每次克隆时都将数据全部拷贝,所以执行的绝大多数操作都是需要访问本地文件和资源,效率高;
    且及时你离线或没有 VPN 时,几乎也可以进行任何操作。

  • Git 保证完整性
    Git 中所有数据在存储前都会进行校验,因此不可能在 Git 不知情时更改任何文件内容或目录内容。即所有操作都会被记录。

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

  • 三种状态:Git 仓库、工作目录、暂存区域

    三种状态示意图

    1)工作目录
    对项目的某个版本独立提取出来的内容,放在磁盘上供开发者使用或修改
    2)Git 仓库
    Git 用来保存项目的元数据和对象数据库的地方。Git最重要的存储数据的部分。
    3)暂存区域
    一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库中。
    基本的 Git 工作流程:
    工作目录中修改文件 => 文件快照存放到暂存区 => 提交更新,找到暂存区的文件,永久存储到 Git 仓库

1.3 命令行

Git 有多种使用方式,可使用原生命令行模式,也可使用 GUI 模式。
但只有在命令行模式下才能执行 Git 的所有命令,而大多数的 GUI 软件只实现了 Git 所有功能的一个子集以降低操作难度。

1.4 安装 Git

安装包下载地址:https://git-scm.com/downloads,下载后直接安装即可

1.5 初次运行 Git 前的配置

Git 自带 git config 工具来设置控制 Git 外观和行为的配置变量。这些变量存储在三个不同位置:
1. /etc/gitconfig 文件:——包含系统上每一个用户及他们仓库的通用配置。
对应 git config --system
2. ~/.gitconfig 或 ~/.config/git/config 文件:——只针对当前用户。
对应 git config --global
3. 当前实用仓库的 Git 目录中的 config 文件(.git/config):——针对该仓库
每一个级别覆盖上一级别的配置。
在 Windows 系统中,Git 会查找 $HOME 目录下(一般情况下是 C:\Users$USER)的 .gitconfig 文件。 Git 同样也会寻找 /etc/gitconfig 文件,但只限于 MSys 的根目录下,即安装 Git 时所选的目标位置

1.5.1 用户信息

安装完 Git 后应首先配置你的用户名和邮件地址。因为每一个 Git 的提交都会使用这些信息,且会写入到你的每一次提交中,不可更改。

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

注: 使用了 --global,则该命令运行后,无论你在该系统上做任何事情,Git 都会使用那些信息。若你想针对特定项目使用不同的用户名称和邮件地址,可以在特定项目目录下运行没有 --global 选项的命令进行配置。eg:

git config user.name "Tony" 
1.5.2 文本编辑器

Git 需要你输入信息时会调用文本编辑器,默认为 Vim,你可以通过
git config --global core.editor editorname 来进行配置。则调用时会调用你配置过的文本编辑器。

1.5.3 检查配置信息

git config --list可查看当前 Git 的全部配置。
git config <key>来查看某一项配置,例如:git config user.name

1.5.4 获取帮助

当你使用 Git 需要帮助时,以下三种方法可以找到 Git 命令的使用手册:

git help <verb>
git <verb> --help
man git-<verb>

例如:
git help config 可获得 config 命令的手册。

本文参考:https://git-scm.com/book/zh/v2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • Git使用教程 Git是什么 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是...
    唯夜阅读 1,843评论 1 11
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,672评论 1 17
  • 河畔的微风吹过树梢,开始泛黄的叶子早已按耐不住摇曳,望着朝夕相处的土地,或许,就在今晚,便可以邂逅那久违的话语。 ...
    文颠阅读 329评论 0 0