【基础技能必备】| 学会使用Git版本控制系统及代码托管平台Github、Gitee(一)

目录

**学习之前的准备**

一、什么是Git 

二、Git与Github、Gitlab、Gitee

三、安装Git版本控制系统

四、配置Git版本控制系统

**总结**


**学习之前的准备**

        学习任何工具或技术不可能一蹴而就,因此这篇学习指南仅作为最基础的导引使得你能够避免大多数无用的尝试。正常的逻辑是,根据我们的需求,在实践中进行循循渐进的学习使用,从而逐渐达到熟练。

        这里对于Git和Github,我们需要搜集一些官方文档及简单的教程进行上手。【Git、Github等网站访问较慢,可以事先解决】

        I、Git官方英文网站    Git

        【建议进入Git英文官方网站,可以进行中英对照,先阅览 about 部分,对Git进行简单的了解】

        II、Git官方英文文档    Git - Documentation

        对于文档部分,Git提供了三种可用的参考,如下:

                1. Book《Pro Git》

                【第二版是2014年出版的,首先阅读这本书可以让你系统地了解Git】

                2. Reference Manual (参考手册,三类)

                        提供三类:

                                -1 [Complete list of all commands完整的命令列表]

                                可根据Git工具的版本选择的完整命令查阅列表    Git - Reference

                                -2 [Visual Git Cheat Sheet 可视化Git备忘单]

                                使用操作的非详细提示    GitHub Git 备忘单 - GitHub Cheatsheets

                                -3 [Github Training Manual官方Github培训手册]

                                在熟悉Git功能和操作基础之上,进行Github的功能操作学习

                                GitHub Training Manual

                3. External Tutorials(一些好评较多的教程和书籍)

                其中我推荐的是

                Git Immerssion Git Immersion

                Git Magic Git Magic - Preface

       III、Github中文社区 & Github托管平台官网

              中文社区    GitHub中文社区 | GitHub中文网

              托管平台    GitHub: Let’s build from here · GitHub

       IV、对于小白的额外推荐教程

              Git 教程 | 菜鸟教程

一、什么是Git 

        【Git的由来:IT行业的软件工程等典型生产场景需要对项目开发进行管理。传统的CVS、SVN等集中式的版本控制系统,需要与中心服务器通信、无法离线开发等缺陷。为解决这些问题并达到快捷、高效开发项目和管理项目的目的,2005年,Git诞生并逐渐受到开发者青睐。】

        Linux创始人Linus Torvalds解决痛点,为管理Linux内核开发而开发了Git。

        

        Git是免费的 开源的 完全分布式版本控制系统

(属性功能描述:将项目的版本历史等保存到本地仓库,支持分布式开发和离线开发,支持分支管理版本开发)【可以理解为:一个用于开发项目过程的,功能强大且更好用的软件】

        Git是DVCS,Distributed Version Control System分布式版本控制系统

        同功能的传统版本控制工具:

                CVS,Concurrent Version System计算机并行版本系统、

                SVN,Subversion版本控制工具

        *Git功能的简单描述:

               项目代码仓库分布式(本地单机仓库、服务器远程仓库)

               通过分支对代码修改提交合并等、通过分支对项目版本进行管理

               核心功能是跟踪文件的历史变化,以便在需要时能够恢复到以前的版本

        *特点:(Git功能的精妙之处)

                以分布式版本库的方式(每个开发者都有一个本地库)

                【SVN是集中式的版本库(所有开发者都使用一个库)】

                项目程序内容按照 元数据方式 存储,资源控制系统把文件的元信息隐藏在一个类似.cvs.svn的文件夹中

                【SVN采用文件方式.cvs.svn存储项目程序内容】

                Git分支不易发生遗漏(在同一个工作目录下快速在几个分支间切换)

                【SVN不容易发现未被合并的分支】

      

                Git不需要全局版本号

                【SVN需要全局版本号】

      

                Git保障内容完整性

                【GIT内容存储使用SHA-1哈希算法】

        *原理:(实现功能的方式)

                以文件快照的方式组织存储文件,不以版本的变化保存,而直接将变化后的版本文件进行快照保存。以此原理可以进行多种功能,如在某版本基础上进行开发,或者返回到某个版本进行修改。Git将所有的文件及其历史变化都存储在版本库中。版本库是一系列目录和文件,并包括一个隐藏的.git目录,该目录包含Git需要跟踪的一切信息。Git允许用户创建多个分支,每个分支都代表一个不同的开发线路。分支的创建和合并使得项目的协作开发变得清晰。每个提交代表对某个文件进行的一次更改,每次提交都会生成一个唯一的标识符,称为SHA-1哈希值。使用暂存区(或称为索引)来存储要提交的更改。用户必须将更改添加到暂存区后,才能将它们提交到版本库中。

二、Git与Github、Gitlab、Gitee

        Github、Gitlab、Gitee本质上都是基于Git工具的内容托管平台

       【简单描述:将内容(如项目代码)上传到这些托管平台可以进行公开,使得其他开发者能够共享代码,对你上传的仓库进行再开发;或是将内容上传到这些托管平台后进行私有,只有自己或协同开发团队成员才能进行维护,是对于项目托管维护功能的提供】

        它们在本质上是相同的,但是其它属性上稍有不同。

        Github只支持Git作为唯一的版本库格式进行托管,于2008年正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。开源项目可以免费托管,但私有库则并不如此。私有仓库可以在组织内部协作,而无需将代码公开。由于其是最先基于去中心化版本控制系统Git的代码托管平台,吸引了众多开发者用户,从而逐渐成为全球最大的开源项目托管平台。【对于个人来书说,Github不仅是基于Git的版本控制系统的重要部分,还是全球最大开源平台,个人可以免费创建公开库。有私有仓库功能,从21年开始3人以下的协作者私有库是免费的,国内企业通常不会选择Github的私有仓库,出于安全等因素。】

        Gitlab是于2012年发布的开源的自托管Git项目仓库,同样也是一个用于项目代码托管的平台,不过Gitlab是一个按照MIT许可证分发开源的基于网络的Git仓库管理项目,基本上是Github的复制,可通过 Web 界面进行访问公开的或者私人项目,且具有wiki和issue跟踪功能。虽然与Github有相似的功能,但是由于其开源的属性,开发者可以在私人服务器上搭建Gitlab,也就是相当于一个私有仓库免费的Github。其功能上,主要针对group和project两个维度进行代码和文档管理,其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。GitLabCE(社区版)和GitLabEE(企业版),CE版中开放核心业务模式【也就是开源版】,EE版中需要专有许可证获得更多企业级定制功能。2022年,极狐(GitLab)正式宣布推出极狐GitLab SaaS,为中国用户提供从源代码托管到开发运维的全栈式一体化DevOps SaaS平台与企业级专家咨询服务。【不收中俄员工等,黑料满满】【对于个人来说,Gitlab没有像Github那样全球开源的功能,但是Gitlab依然有它存在的意义,个人开发者或者创业团队,通过开源的Gitlab在服务器搭建Git项目版本控制系统功能的私有库是可行操作,这个私有库通过 服务器 既可以与其它开发者共享成为 “公开库”,也可以是一个仅自己使用的私有库。目前不知道Gitlab在2022年推出的企业级定制的,融合开发和运维的Gitlab DecOps SaaS的市场如何。】

        Gitee的前身是GitCafe,GitCafe是2013年在中国开源社区创建的,【GitCafe是基于开源的Gitlab二次开发的,不确定是否属实】,GitCafe于2016年被开源中国OSChina公司收购,并更名为Gitee,成为了国内最大的代码托管平台。除了提供最基础的 Git 代码托管之外,还提供代码在线查看、历史版本查看、Fork、Pull Request、打包下载任意版本、Issue、Wiki 、保护分支、代码质量检测、PaaS项目演示等方便管理、开发、协作、共享的功能。Gitee 于 2016 年推出企业版,提供企业级代码托管服务,成为开发领域领先的 SaaS 服务提供商。【是不是有点眼熟】Gitee在国内访问较快的原因,Gitee成为国内最大的代码托管平台。Gitee社区版私有库支持5人以下是免费的,比Github好一点。但是,Gitee的开源项目库数量体量不如Github,Gitee的公开库从2022年开始不再支持匿名访问,且公开库的项目资源代码需要Gitee审核才能通过,需要Gitee账户。【对于个人来说,Gitee是一个私有库功能和Gitlab差不多的,公开库功能和Github差不多但是资源不如Github多的,国内的 基于Git版本控制系统的Git代码托管平台。目前不知道Gitee 率先在2016 年推出的企业级代码托管服务的,融合开发和运维的Gitee DevOps SaaS 的市场如何。】

 三、安装Git版本控制系统

        I、Git官网进行下载

                Git        【不熟悉英语,可以善用网页翻译】

        II、安装,以默认选项安装【路径除外,请记住你的安装路径】

        建议根据你的操作系统信息下载对应的基础完整版本Git就可以

        现在不要安装任何的Git GUI or Git Desktop(Git客户端或者Git桌面版)

四、配置Git版本控制系统

        I、安装完成后打开Git自带的Git Bash

                or 打开你的操作系统的Shell命令行窗口

        II、基础配置

                1. 添加身份说明【此处不是注册,也不是登录,只是对于第一次使用这个系统的初步标记和记录】

$ git config --global user.name "你的用户昵称"
$ git config --global user.email 邮箱@example.com

                2. 创建一个本地Git仓库【不需要联网就可以在这个仓库中使用Git的所有功能】

                        -1 指定一个文件夹成为一个Git本地仓库

git init

                                 or 在这个文件中右键,-->Git Bash Here

                        这样是在这个文件路径下快速地打开Git Bash,在Git Bash通过输入各种指令来使用Git的功能

                        同样,可以通过这个方式,在Bash中输入 git init 将一个文件夹指定为一个本地的Git仓库

                         -2 为Git全局设置行尾选项(end-of-line)

                                【为什么要设置eol,end-of-line:因为在Windows系统中的文档换行时是CRLF(CR,carriage-return回车符+LF,linefeed换行符),而Mac系统仅以CR回车符换行,Unix系统仅以LF换行符换行,这就会导致开发者在使用不同的系统进行协同开发时出现“存在腐蚀文件问题--指文档中同时存在CRLF和LF”,腐蚀文件是不被Git认可的】

**本地仓库是在windwos系统上的这样设置**
$ git config --global core.autocrlf true
$ git config --global core.safecrlf true

**本地仓库是在Unix/Mac系统上的这样设置**
$ git config --global core.autocrlf input
$ git config --global core.safecrlf true

                                Windows的设置 core.autocrlf true会在文件检出到版本库时,将LF自动转换成CRLF,这样也会激活 core.eol,core.eol 的参数有native、lf、crlf,不单独设置的时候默认是native(会以本地end-of-line格式为准);另外设置core.safecrlf true是开启Git检查crlf转换是否正常(检查文件是不全以CRLF结束行),转换不正常之后会报错,那么请自行进行手动转换【使用dos2unix工具】

                                Unix/Mac的设置 core.autocrlf input会在文件提交到暂存区时,将CRLF自动转换成LF,这样也同样会激活core.eol;另外设置core.safecrlf true是开启Git检查crlf转换是否正常(检查文件是不全以LF结束行),转换不正常之后会报错

**总结**

        在本篇(一)中,搜集了关于 Git版本控制系统 和 Github内容托管平台 可用的官方学习教程的指南,简单了解Git的功能以及Git、Github、Gitlab、Gitee它们之间的区别与联系,对于第一次安装Git的建议,第一次使用Git的必要配置。在篇(二)中,将会进一步说明 Git的基本操作 和 Git配合Github托管平台使用的操作。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值