前言

若文章有误,欢迎读者留言反馈

初识Git

在学习Git之前,我们应该明白为什么要学习Git以及Git能帮助我们做什么:
比如在日常开发中,多人对一个共享文件进行代码编写,每个人有每个人的版本,如果你不借用Git,先进行编辑的人所做的修改内容会被覆盖掉,或者说如果客户要求你代码版本是之前编写的,但现在所编写已经将之前的编写删掉,找不到之前编辑的版本,这就很坑爹,基于这种情况 Git版本管理系统 应运而生。

  • Git是一个免费的、开源的 分布式版本控制系统,可以高效地处理从小型到大型的各种项目;
  • Git利于学习,占地面积小,性能极快。它具有廉价的本地库,方便暂缓区域和多个工作流分支等特性。其性能优于SubversionCVSPerforceClearCase版本控制工具。

版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统,在开发过程中用于管理我们对文件、目录或工程等内容的修改历史,便于查看更改历史记录,备份以便恢复以前版本的软件工程技术。其最主要的是可以记录文件修改的历史记录,从而让用户能够查看历史版本,方便版本切换。简单说:用于管理多人协同开发项目的技术。

版本控制分类:

  1. 本地版本控制:
    • 记录每次文件的更新,可以对每个版本做一个快照,或是记录补丁文件,适合于个人,如RCS
  2. 集中版本控制:
    所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,缺点是:一旦服务器出现损坏或者网络问题,用户就不能看到历史版本甚至会丢失所有数据,其代表产品:SVN
  3. 分布式版本控制:
    • 所有版本信息仓库同步到本地的每个用户,这样就可以查看所有版本历史记录,只需在连网时push到相应的服务器或其他用户那里,不会因为服务器的或网络问题,造成不能工作的情况,缺点是:每个人都拥有全部代码,容易造成安全隐患,比如携码跑路……

GitSVN的区别:
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网,因为版本都在自己的电脑上,可以直接看到更新了那些代码和文件。
SVN是集中式版本控制系统,版本库是集中放在中央服务器中,工作时需要自己的电脑从中央服务器得到最新的版本,然后工作,完成工作后把做完的内容推送到中央服务器中。

集中式与分布式图解

常见的版本控制工具:

GitSVNCVSVSSTFSVisual Studio Online版本控制产品很多,现在影响力最大且使用最广泛是Git,我们学习的应该也是最主流的技术Git,其它了解即可。

Git工作机制

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为:”远程库“。
托管中心基本分两类:局域网上的GitLab,和互联网上的Github(外网)、Gitee(码云,国内网站)

Git工作机制

Git的安装与配置

Windows平台安装(主要)

Windows系统上安装Git可以到Git官网上下载:Git官网(属国外的站,下载慢可以找国内的一些镜像网站,百度很多,这里不在赘述)

Git官网


下载git

安装过程中建议可以勾选这几个选项,可以在桌面右键点击,菜单栏里面是可以看到的

安装git

在选择一个默认的编辑器时直接默认选择vim即可[当然如果你像我一样习惯使用visual studio code,那就选择这个],vim只要会点Linux操作即可,当然也可以选择其他自己擅长的编辑器,主要是看自己的具体情况

选择默认的编辑器

在选择设置分支名字的时候,直接默认即可

设置分支名字

在选择PATH环境时,选择第一个即可,第二个也可以,能在cmd运行,第三个建议不选

选择path环境

后面的直接傻瓜式的直接默认即可,没啥重要要说明的。
安装完成之后,就可以使用命令行的git工具了,另外还有一个图形界面的Git项目管理工具,在开始菜单里找到"Git"->"Git Bash",会弹出Git命令窗口,你可以在该窗口进行Git操作

git命令窗口

  • Git Bash:UnixLinux风格的命令行,使用最多,推荐最多
  • Git CMD:Windows风格的命令行
  • Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

不同系统下的git操作界面

Git GUI的图形画界面比较丑,大部分还是喜欢使用Git Bash

Git GUI界面

点开Git Bash输入git --version就可以查看当前git的版本了,因为我老早之前就下载了,并不是最新版本,也懒得再重新更新下载了,大家凑合看吧(按住ctrl + 滚轮进行字体的放大),在输入框输入基本的Linux命令即可执行

10091

Linux平台安装

Git的工作需要调用curlzlibopensslexpatlibiconv等库的代码,所以需要先安装这些依赖工具。在有yum的系统上(比如Fedora)或者有apt-get的系统上(比如Debian体系),可以用下面的命令安装:各Linux系统可以很简单多使用其安装包管理工具进行安装:

Debian/UbuntuGit安装命令为:

1
2
3
4
5
6
7
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev

$ apt-get install git-core

$ git --version
git version 1.8.1.2

Centos/RedHatGit安装命令为:

1
2
3
4
5
6
7
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel

$ yum -y install git-core

$ git --version
git version 1.7.1

Mac平台安装

Mac平台上安装Git最容易的当属使用图形化的Git安装工具,其下载地址为:Mac平台Git安装工具

Mac平台安装Git

Git相关配置文件解读

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量;这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若使用git config时用--system选项,读写的就是这个文件;
  • ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用git config时用--global选项,读写的就是这个文件;

当前项目的Git目录中的配置文件(也就是工作目录中的.git/config文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以.git/config里的配置会覆盖/etc/gitconfig中的同名变量