Git 学习路线图:为什么每个开发者都应该了解它?

2024-07-26 22:58:40 浏览数 (4)

“ 在当今的开发环境中,版本控制系统是协作开发的核心工具,而 Git 以其强大的分布式特性脱颖而出。本文将深入探讨 Git 的基本概念、实际应用以及其与传统集中式版本控制系统 SVN 的主要区别。还将提供在各种操作系统上安装和配置 Git 的详细指南。

一、概述 

本文分享分布式版本控制工具:Git。本系列主要从四个角度进行讲解:

  1. git是什么?
  2. git有什么用?
  3. 为什么要用git?
  4. 要学什么?以及怎么用?
图片图片

1.1、git是什么?

git是一个分布式的版本控制工具,用于跟踪文件的更改,协作开发和管理项目代码。它允许多个开发者协同工作,跟踪代码的修改历史,并在需要时进行回溯或合并。

一提到这个Git工具,马上能联想到一个非常著名的平台:GitHub。GitHub 是一个基于 Git 版本控制系统的代码托管平台。它是一个存储代码的地方,可以通过网络访问并在全球范围内进行协作。GitHub上面有很多优秀的开源框架和代码,我们可以在上面分享代码,和其他开发者协作开发项目。GitHub现在是微软旗下的公司。

除了GitHub,国内还有gitee和gitlab,gitee目前还有一些问题,比如有些私有的项目只能私有,无法开放。

1.2、git有什么用?

  • git可以保存文件的所有修改记录。进行开发的时候,在本地可以保存我们代码,然后上传到服务器中。
  • 使用版本号进行区分。每次和服务器交互时都会提交一些修改的代码,git会为每一次提交生成版本号,用这个版本号来进行区分每一次的提交。这个版本号在git当中会使用一个hash值进行唯一区分;这个hash函数使用的是sha1(不仅git使用这个sha1生成hash值,一些著名的软件,如redislua等也是使用sha1产生hash值)。
  • 随时可以浏览历史版本记录。协同开发的时候,产生的每次提交都会在git上保存有历史版本信息,根据历史版本信息可以追溯到具体代码提交;以及当代码出现bug时可以根据历史版本锁定bug位置。
  • 可还原到历史指定版本。当代码出现bug时,可以还原到历史指定的版本。
  • 对比不同版本之间的文件差异。使用git diff工具进行比较文件差异。
图片图片

1.3、为什么用git?

主要因为Git是目前最热门的分布式版本控制工具。多人协作开发大型项目时,都离不开Git的帮助。使用git后每个人具体的工作方式:从代码库下载代码,然后在本地进行修改,最后将每个人不同的代码版本合并到一起,上传到平台上。

一般来说,每个公司都有一个自己的代码托管平台,比如 gitlab。git是为协作开发而生。

git的意义:

  1. 多人协作开发大型项目。
  2. 为协作开发而生,大势所趋,公司都在使用。
  3. 每个人都从代码库下载代码,然后修改,将所有人的代码合并后统一上传到平台。
  4. 每个公司都有自己的代码托管平台,github是免费的、开源的托管平台。

1.4、怎么学习Git ?

接下来介绍怎么学习Git。主要从三个维度进行讲解:

  1. 基本概念。要了解Git的抽象,它抽象了哪几个环节,那么我们去具体使用的时候,是从哪几个环节去下手的好。
  2. 操作。包括:
    • 基本操作
    • 逆向操作;即当我们按着顺的方式去操作时,如果出错了,怎么退回来,就是逆向操作。
    • 本地仓库的整理操作;就是提交代码的时候,我们希望这个提交记录比较美观,并且有条理性,那么我们需要对本地仓库进行一个整理,然后再把它部署到我们的远端服务器。
    • 分支操作;就是我们怎么跟其他人协作,上面的几点都是我们自己在开发功能,然后提交一些内容,然后做一些修改,那么分支呢,就是我们跟其他的分支跟主分支进行交互,我们把最新的数据推到远端去,或者从远端拉最新的数据到我们本地等等这些分支操作。
    • 解决冲突;因为多个人同时来开发一个功能的时候呢,可能会产生一些冲突,那么产生冲突我们怎么解决?
  3. 使用规范。介绍一下在公司当中通常需要使用到的一些规范,这个规范是可以参考的,每一个公司会不一样,但是它们遵遵循的原则都是一样的。
图片图片

二、Git与SVN的区别?

SVN是一种集中式的版本管理工具:

  1. 版本管理有一个中央服务器,可以保存所有代码、文档。
  2. 每一次的修改都可以提交到版本库,修改有记录,可追踪。
  3. 不害怕某个同事离职了,代码没有入库。
  4. 本地的代码流失后,可以从版本库检出。
  5. 多人协作,每个同事完成的工作提交到版本库,方便进行集成。
  6. 当我们要开发需求或修复PR时,可以从版本库上拉出分支管理。
  7. 在大的企业,每次提交都可能触发一次构建,实时检查代码的质量。
  8. 如果构建失败了,可以自动revert掉某次提交。
图片图片

SVN只有一个服务器,部署在远端,本地都是和远端进行交互。而Git是分布式的版本控制工具,除了一个中央服务器进行代码托管之外,本地也会有一个仓库,进行代码提交时,可以先提交到本地仓库,然后根据需要或时机再推送到远端;除了本地推送到远端服务器,还可以进行两台机器之间的本地仓库相互协作,不一定非要跟远端的服务器交互(即Git允许个人之间的互相协作)。

git的仓库主要存储差异文件,存储的数据非常高效。当我们把修改的文件推送到仓库时,仓库会把历史版本文件进行比较,然后存储差异数据。

图片图片

它们的区别:

  • 分支管理:Git采用轻量级分支,而SVN每次切换分支需复制整个项目目录。
  • 合并操作:Git的合并操作相对简单,而SVN合并时可能出现大量的冲突。
  • 分布式:Git是分布式版本控制系统,而SVN则是集中式系统。
  • 适用场景:Git更适合大型项目或开源项目的协作,而SVN更适合中小型团队或需要集中式管理的项目。
  • 版本号:Git没有一个全局的版本号,而SVN有。
  • 内容存储:Git的内容是按元数据方式存储,而SVN是按文件处理。
  • 分支:SVN的分支是一个目录,而Git不是。

三、安装Git 

3.1、Linux上安装git

在linux上建议用二进制的方式来安装 git,可以使用发行版包含的基础软件包管理工具来安装,如果你是 CentOS 或者 Fedora 的操作系统,可以使用yum命令来安装git

代码语言:javascript复制
sudo yum install git

如果你是 ubuntu 或者是 Debian 可以使用apt-get的命令来安装git

代码语言:javascript复制
sudo apt-get install git

要了解更多选择,Git 官方网站上有在各种 Unix 风格的系统上安装步骤,网址为 http://git-scm.com/download/linux。

3.2、Windows上安装Git

在 Windows 上安装 Git 也有几种安装方法。官方版本可以在 Git 官方网站下载。打开http://git-scm.com/download/win,可能会检查你的操作系统是32位的还是64位的,并自动开始下载对应的安装包。如果没有自动下载,可以在页面选择合适的安装包进行安装。

另一个简单的方法是安装 GitHub for Windows。该安装程序包含图形化和命令行版本的 Git。它也能支持Powershell,提供了稳定的凭证缓存和健全的换行设置。你可以在 GitHub for Windows 网站下载,网址为 http://windows.github.com。

3.3、MAC上安装git

首先查看电脑是否已经安装git,打开终端输入:git,安装过则会输出:

代码语言:javascript复制
MacBook-Pro:~ WENBO$ git
usage: git [--version] [--help] [-C <path>] [-c name=value]
        [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
        [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
        [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
        <command> [<args>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
    clone Clone a repository into a new directory
    init Create an empty Git repository or reinitialize an existing one

方法一:通过homebrew安装git。

  1. 首先homebrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. 安装git: brew install git

方法二:通过xcode。直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

四、配置git环境 

当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:

代码语言:javascript复制
git config --global user.name "LionLong"
git config --global user.email ntf_work@163.com

再次强调,如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情,Git 都会使用那些信息。当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

很多 GUI 工具都会在第一次运行时帮助你配置这些信息。你也可以使用git config --list来查看git的所有配置。

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

代码语言:javascript复制
git help <verb>
git <verb> --help
man git-<verb>

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

代码语言:javascript复制
git help config

当然,如果遇到问题也可以查看git的官方文档https://git-scm.com/book/zh/v2。

五、总结 

在这篇文章中全面探讨了 Git这个强大的分布式版本控制工具的学习路线。Git 是一个强大的工具,它能够显著提升代码管理和团队协作的效率。无论你是开发新项目还是维护现有项目,掌握 Git 的使用都将为你提供极大的便利。

学习 Git 不仅需要掌握其基本命令和操作,还要理解其背后的工作原理。建议读者通过实际操作和项目实践来巩固所学知识,同时参考官方文档和社区资源进行深入学习。

本系列的后续文章将继续讲解Git的基本概念和常用命令,即怎么使用Git。

1 人点赞