Git 与 GitHub 使用简介

119 阅读5分钟

前情概要

在开发工作中经常会使用到Git 和 GitHub , 那这两者的区别是什么,以及如何使用,今天这篇文章就来一起学习一下。

Git

Git 是什么?下面是从几个大佬网站的不同描述。

[廖雪峰](Git简介 - 廖雪峰的官方网站 (liaoxuefeng.com))

[菜鸟教程](Git 教程 | 菜鸟教程 (runoob.com))

整体来看Git就是一个分布式的版本控制系统。

拆分开来理解一下,分布式表示Git并不是依赖于单台电脑存放数据,这是Git的优势之一;  
1、单台电脑存放数据如果出问题,数据安全性是得不到保障的,也称为单点故障。其实也有一款软件叫SVN就是
集中式的版本控制软件
2、此外版本控制系统表示Git的主要功能式是可以管理版本控制。
    那什么是版本控制呢?
    当工作需要协同的时候,一份文档可能被多个人修改了,如果想回到文档某个时间点的状态是比较困难的
    但是如果有版本控制的功能,那就会简单许多。

Git 有哪些优点呢?

    大部分操作在本地完成,不需要联网
    完整性保证
        Git 采用Hash算法进行加密,可以校验数据是否完整
    尽可能添加数据而不是删除或修改数据
    分支操作非常快捷流畅
    与 Linux 命令全面兼容
        Git是linux之父开源,所以在兼容linux命令上有很好的表现

Git 作为一款分布式的版本控制系统应该有哪些功能呢?

    协同修改
        多人并行不悖的修改服务器端的同一个文件。
    数据备份
        不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
    版本管理
        在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。
        这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式。    
    权限控制
        对团队中参与开发的人员进行权限控制。
        对团队外开发者贡献的代码进行审核——Git 独有。
    历史记录
        查看修改人、修改时间、修改内容、日志信息。
        将本地文件恢复到某一个历史状态。
    分支管理
        允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。   

接下来就是Git的安装了

这是Git的官网,可以按照自己电脑的操作系统进行安装包的下载
Git (git-scm.com)
(推荐)当然也可以在阿里镜像网站进行下载,速度会得到大幅度提升
CNPM Binaries Mirror (npmmirror.com)

安装好了之后,我们来聊一聊Git的结构

graph TD
工作区 --> 暂存区 --> 本地库
以上三层和Git的使用有什么关系呢?
    本地库是文件最先产生的地方 通过 git add 命令可以把文件提交至暂存区
    暂存区是文件第二个被同步的地方,由本地库提交,同时也可以撤回至本地库。并且可以通过
    git commit 命名提交至工作区
    工作区是最终文件呈现的地方

下面是Git的具体操作内容

  • 当下载好Git之后,第一步需要做的是对Git本地库进行初始化

     1、 找到一个空的文件夹,右键,选择 -- Git Bash Here
         会在当前地址打开Bash编辑器
     2、 输入 git init
         会生成一个本地库文件夹 .git
         注意:不要改动此文件夹,否则后续可能影响使用
    
  • 对Git设置签名

      为什么需要设置签名?
          因为Git是需要多人协助的,设置签名可以辨识不同开发人员的身份便于版本管理
      如何设置签名
          Git签名分为 
              项目级别/仓库级别:仅仅在本地库范围内有效
                  git config user.name tom
                  git config user.email good@123.com
                  cat ./.git/config 通过此命令可以查看项目级别账号详情
              系统用户级别:登陆当前操作系统的用户范围
                  git config --global user.name tom
                  git config --global user.email good@123.com
                  ~/.gitconfig  global级别账号详情
          级别优先级:项目级别优先度更高,两个级别都没有签名是不被允许的
          一般来说,只会设置一套系统级别的账号体系,供所有项目使用
    

    image.png

  • 对Git进行使用

    1、Git 的状态查询、日志查询

      git status
      查看工作区,暂存区状态
      
      git add [file name]
      将工作区 操作 添加到暂存区
      
      git commit -m "commit message" [file name]
      将暂存区的内容提交到本地
      
      git log      
      git log --pretty=oneline
      git log --oneline  (最简单)
      查看历史记录的不同显示风格
      
      git reflog
      会显示 HEAD@{移动到此版本需要多少步}
    

    image.png

    2、如何控制Git进行版本的前进后退

          版本前进后退的本质在于:当提交了多个版本,Git会保留所有的版本,并且提供一个指针;指针指向
      的版本就是,需要的版本。
          
      以下是两种控制指针的方式
          1、基于索引值操作[推荐]
              git reset --hard [局部索引值]
              git reset --hard a6ace91
          2、使用^符号:只能后退
              git reset --hard HEAD^
              注:一个^表示后退一步,n 个表示后退 n 步
          3、使用~符号:只能后退
              git reset --hard HEAD~n
              注:表示后退 n 步
      
      比较reset的三个参数 hard 、 soft 、 mixed
          hard 仅仅在本地库移动 HEAD 指针
          mixed 在本地库移动 HEAD 指针 并且重置暂存区
          soft 在本地库移动 HEAD 指针 并且重置暂存区,重置工作区
    

    后面,我们将继续进行Git的介绍