zoukankan      html  css  js  c++  java
  • Git学习:版本控制、Git简介与安装




    1.什么是版本控制(Version Control)

    如果你长期使用过某个软件,或者长期玩过某款游戏,那你就应该听说过“版本”一词,甚至遇到过软件版本的更新,比如腾讯 QQ 最新版是9.1.6版本,英雄联盟最新版是9.14版本。从用户的角度来说,软件的版本往往是越新越好,因为越新的版本一般意味着更多的功能、更好的界面以及更少的 BUG。但是作为软件的开发者,事情却不一定是这样。

    当多人协作开发一个长期的、大型的项目时,开发新版本时做出的改动带来新 BUG 是很常见的事情,如果新 BUG 可以很快定位,那么只要解决它然后继续开发就可以了,但是如果新出现的 BUG 难以直接定位呢(这并不少见,尤其是在项目依赖情况复杂的时候)?最好的办法是用出现新BUG的代码,和没出现该 BUG 的代码(即旧版本的代码)进行比较,看看修改了哪些地方,然后对这些修改过的部分逐一排查,以确定导致新 BUG 的原因。而这样的做法,就需要我们保留项目的旧版本,以便未来查看、对比、甚至回退1。这样的需求,就是版本控制。

    最简单的版本控制,就是自己手动保存项目的各个版本,比如将项目的各个版本存在各个目录中:Project_v1、Project_v2、Project_V3,然后将正在开发的版本存在一个单独的目录:Project_v4_developing。但是这样做的弊端太多,比如不能快速判断各个版本的差异,不能实现比版本更细腻的历史管理2等等。当项目越来越大、历史越来越长后,这些弊端将会令人难以忍受。

    因此,我们需要有更专业的工具来实现对项目的版本控制,其中一个著名的工具就是Git。



    2.Git简介

    Git是一款免费、开源3的分布式版本控制系统,最初由 Linus Torvalds 实现,目的是用于管理 Linux 内核的开发。当然,现在的 Git 和当初的 Git 相比已经复杂了很多,普通用户可能一辈子也用不到 Git 的所有功能。

    Git 的分布式是相对于集中式而言的,两者都是多人协作的工作模式。集中式系统采用一个服务器与多个客户端协作的模式,核心是服务器,大家绕着它转,新的修改提交给服务器以形成历史记录,旧的修改记录也从服务器获取,如果服务器崩溃了而又没有事先做好备份的话,那么整个系统就崩溃了,因为各个客户端并没有完整的服务器数据。而在分布式系统中,参与者的地位是等同的,自己的新修改直接提交给自己以形成历史记录,然后分享给他人,以使他人拥有自己的修改记录,从而实现共同开发,所有参与者都可以看作是服务器。

    此外,分布式的 Git,也可以使用集中式的工作方法,道理非常简单,既然所有参与者都相当于服务器,那就可以让大家选一个机器作为集中式模式的服务器,然后通过它来分享修改,这样就实现了集中式的工作模式,而同时又不失分布式的优势:当选定的服务器崩溃后,可以从参与者中重选一个服务器。

    当然,集中式系统也并非毫无优点,比如集中式的版本控制系统SVN,其支持对路径的权限控制,从而可以更强力地控制开发人员的权限。

    因为Git的基本原理与工作流程即便简单介绍也有较多内容,所以对Git工作流程的简介留到下一篇文章再做。



    3.Git安装

    3.1 Linux环境下安装Git

    在基于RPM的Linux发布版本,如CentOS中,可以使用如下命令安装Git:

    $ sudo dnf install git-all
    

    在基于Debian的Linux发布版本,如Ubuntu中,可以使用如下命令安装Git:

    $ sudo apt install git-all
    

    安装完成后,可以通过 git --versionwhich git 来确认自己是否安装成功,若安装成功,则 git --version 会显示当前安装的 Git 的版本,而 which git 则会在未安装Git时没有输出内容。


    3.2 Windows环境下安装 Git

    Windows环境下安装 Git 有很多选择,因为有很多基于Git的图形工具自带Git,不过本文推荐安装标准的 Git for Windows(带有图形界面),可以点击此链接获取安装包。

    从该链接下载的是 Git for Windows 的安装包,下载完成后打开即可安装,安装过程可以参考另一篇博客:安装 Git for Windows

    虽然 Git 支持 Windows,但是依然建议在 Linux 环境学习 Git,原因有三:

    1. 学习搭建 Git 服务器,以及练习 Git 远程协作时,需要有“两台机器”进行模拟,如果你没有两台实体机,那么搭建虚拟机是有必要的。

    2. 搭建一个 Linux 虚拟机非常简单,不比安装 Windows 困难,而且没有盗版的风险,并且Linux 简介与安装中有详细的搭建步骤。

    3. 学习 Git 往往是学习其命令(和基本原理),这些命令都是 Linux 命令,而不是 windows 的 Cmd 命令。当然,学会了命令操作后,借助 GUI 操作就更加简单了。


    下一章我们将会介绍 Git 的基本操作方式。


    注释:

    1. 比如魔兽世界,2019年8月开放了怀旧服,而实现怀旧服必然是用到了“版本回退”以使用旧版本的源代码(单纯保存旧版本程序是不够的,因为怀旧服只是游戏内容和过去一样,账号认证等其他部分是和当前匹配的,这就需要有旧版本的源代码)。

    2. 开发一个新版本,往往有很多很多次修改,很多时候我们需要查看某一次修改做出的改动,而不仅仅是查看两个版本间做出的改动。

    3. Git自身的源代码是开放的,位于 https://github.com/git/git

  • 相关阅读:
    整数转字符串
    SharePoint介绍性文章
    Disable Sharepoint 2007 show as System Account when system admin login
    通过IP地址获得主机名
    从文本文件读取信息
    数据库连接池问题[转]
    企业类库问题 public key 问题[经过自己测试]
    Google Analytics异步代码创建虚拟浏览量跟踪
    同一主机上WordPress博客更换域名简易八步骤(2)
    关于application/xwwwformurlencoded等字符编码的解释说明
  • 原文地址:https://www.cnblogs.com/mm93/p/11287858.html
Copyright © 2011-2022 走看看