学习Git(一)起步

什么是Git

在Git官网上找到这样一段描述

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

重点是 version control system (VCS),翻译过来也就是 版本控制系统。(Pycharm中有一个)

关于版本控制

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

(我的理解就是一个东西会有不同的版本,就像吃鸡,常常更新,每更新一次就是一个新的版本,如果刚发行的版本出现毒圈不掉血,这个时候就需要版本回退。。版本控制系统就体现作用了)

版本控制系统又分为:本地版本控制系统、集中化的版本控制系统、分布式版本控制系统。

本地版本控制系统

集中化的版本控制系统

分布式版本控制系统

更多介绍可以来看 1.1 起步 - 关于版本控制

谁开发了 Git

2002 年,Linux 内核开源项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

但是到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:

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

Git 特点

Git 工作流

基本的 Git 工作流程如下:

  1. 克隆 Git 资源作为工作目录。
  2. 在克隆的资源上添加或修改文件。
  3. 如果其他人修改了,你可以更新资源。
  4. 在提交前查看修改。
  5. 提交修改。
  6. 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

近乎所有操作都是本地执行

Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。

举个例子,要浏览项目的历史,Git 不需外连到服务器去获取历史,然后再显示出来——它只需直接从本地数据库中读取。 你能立即看到项目历史。 如果你想查看当前版本与一个月前的版本之间引入的修改,Git 会查找到一个月前的文件做一次本地的差异计算,而不是由远程服务器处理或从远程服务器拉回旧版本文件再来本地处理。

Git 保证完整性

Git 中所有数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。 这个功能建构在Git 底层,是构成 Git 哲学不可或缺的部分。 若你在传送过程中丢失信息或损坏文件,Git 就能发现。

Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git 中文件的内容或目录结构计算出来。 SHA-1 哈希看起来是这样:

24b9da6552252987aa493b52f8696cd6d3b00373

Git 中使用这种哈希值的情况很多,你将经常看到这种哈希值。 实际上,Git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名。

Git 一般只添加数据

你执行的 Git 操作,几乎只往 Git 数据库中增加数据。 很难让 Git 执行任何不可逆操作,或者让它以任何方式清除数据。 同别的 VCS 一样,未提交更新时有可能丢失或弄乱修改的内容;但是一旦你提交快照到 Git 中,就难以再丢失数据,特别是如果你定期的推送数据库到其它仓库的话。

Git 的三种状态

  1. 已提交(committed):数据已经安全的保存在本地数据库中。
  2. 已修改(modified) :修改了文件,但还没保存到数据库中。
  3. 已暂存(staged) :对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。

安装 Git

说了那么多,现在开始动手,安装Git。

Linux

$ sudo yum install git

或者

$ sudo apt-get install git

Mac

下载安装包 Downloading Git

或者

$ brew install git

Windows

直接下载文件 Downloading Git

或者

安装 GitHub for Windows

初次运行 Git 前的配置

用户信息

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

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。

检查配置信息

$ git config --list
user.name=name
user.email=example@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

获取帮助

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

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

例如,要想获得 config 命令的手册,执行

$ git help config

总结

以前只是了解 Git常见的push、commit等命令,从没有对 Git进性过系统学习,抓紧时间学习。

目标:两周后,也就是3月28日,能熟练使用 Git进性开发。

这一篇主要讲了些背景知识吧,下一篇就是实际的操作了。

主要从Git文档上截取自己认为重要的部分,有条件可以去仔细阅读。

本文分享自微信公众号 - Python爬虫与算法进阶(zhangslob),作者:努力学习的小歪

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 知乎上值得关注的Python大佬

    萌新整理了知乎上值得关注的Python大佬,来看看吧~ 综合类 @xlzd 比较全能的Python大牛,精通爬虫、后端 @廖雪峰 这个,相信大家都看过老师的入门...

    小歪
  • 萌新刷题之跳跃游戏

    每次选择最远能达到的地方,假设从某一点最远可以到达A点,那么A点之前的所有点都是可以到达的。所以我们只要不断的更新最远可达到的点,然后看是否最远的点超过了终点即...

    小歪
  • PEP8规则及Pycharm应用

    PEP8 PEP是 Python Enhancement Proposal 的缩写,翻译过来就是 Python增强建议书 PEP8 是什么呢,简单说就是一种编码...

    小歪
  • Git实用教程(二) | Git简介及安装详解

    Git(官网 https://git-scm.com/)是一个免费开源的分布式版本控制系统,其最初在2005年由Linux之父Linus使用C语言开发,目的是为...

    Mculover666
  • Git下载及配置环境变量

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

    用户2965908
  • Git原理之时光机和分布式

    Git是我们日常开发的必备工具,是团队协作的利器。Git使用广泛,而之所以如此流行,主要和它的一些突出的优点分不开。

    AntDream
  • 1.3 起步 - Git 基础

    那么,简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余。 在开...

    shaonbean
  • 一天彻底搞懂 Git 《Git 原理详解及实用指南》

    我是扔物线,Android 开发者,开源贡献者,在 GitHub 上有 4.9k followers 和 7.8k stars ,个人的 Android 开源库...

    老钱
  • 如何在Ubuntu 18.04上安装Git [快速入门]

    版本控制系统可帮助您共享和协作开发软件以及开发项目。Git是目前最流行的版本控制系统之一。

    GeekZ
  • 如何在Debian 8上安装Git

    Git是自2005年发布以来根据GNU通用公共许可证v.2的条款分发的版本控制系统。

    无敌小笼包

扫码关注云+社区

领取腾讯云代金券