Git版本控制系统

Git

  • 概述

    目前世界上最先进的分布式版本控制系统。

  • 版本控制系统 (Version Control System)

    • 记录一个文件或若干个文件的内容变化,以便将来查阅特定版本修订情况的系统。
    • 还可以将文件回溯到之前的某个状态,可以从内容中看出是谁提交的代码出了问题。
  • VCS的迭代

    下面说一下VCS (版本控制系统) 的迭代

    • 本地版本控制系统 ,在本地上传,与维护。
    • 集中的版本控制系统 (Centerolized Version Control System) 所有人上传到一个一个服务器上。
    • 分布式版本控制系统 (Distributed Version Control System) 有一个本地服务器,还有一个远端服务器,这样数据不容易丢失。
  • Git的特点

    • 只有在提交代码或拉取代码的时候需要网路
    • 直接记录快照,而非差异比较
    • 所有操作基本都在本地
    • 保证完整性
      Git 一般只添加数据用
  • 常规操作逻辑
    file –> 提交到暂存区 –> 提交到本地仓库 –> 提交到远程仓库

      提交到暂存区就是,当文件在移动过程中,会在暂存区保留一下,等提交完成后暂存区文件就没了。
      比如 windows 移动文件时,从一个目录移动到另一个目录上,在移动过程中,会在本地生成一个保留文件,防止移动失败,导致数据丢失。

git 安装

  • 准备
    linux主机 IP: 192.168.100.203

开启后运行以下命令:

yum -y install git # 安装git

创建Git仓库:
mkdir /tmp/test # 创建本地仓库目录

Git仓库基本操作

  • 初始化仓库:
    [root@localhost ~]# cd /tmp/test/
    [root@localhost test]# git init # 初始化本地仓库
    初始化空的 Git 版本库于 /tmp/test/.git/
    [root@localhost test]# ll -la
    总用量 4
    drwxr-xr-x.  3 root root   18 3月  10 16:26 .
    drwxrwxrwt. 14 root root 4096 3月  10 16:26 ..
    drwxr-xr-x.  7 root root  119 3月  10 16:26 .git # 目录里多出这个目录
  • 查看仓库状态
    [root@localhost test]# git status # 查看仓库的状态
    # 位于分支 master
    #
    # 初始提交
    #
    无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)
  • 创建文件并保存到本地仓库:
    [root@localhost test]# echo lmk > hello.txt
    [root@localhost test]# git add hello.txt # 将文件存储在暂存区
    [root@localhost test]# git status # 查看仓库状态
    # 位于分支 master
    #
    # 初始提交
    #
    # 要提交的变更:
    #   (使用 "git rm --cached <file>..." 撤出暂存区)
    #
    #       新文件:    hello.txt
    #
    [root@localhost test]# git commit -m "first" # 将暂存区的文件存到本地仓库
    # 请为您的变更输入提交说明。以 '#' 开始的行将被忽略,而一个空的提交
    # 说明将会终止提交。
    # 位于分支 master
    #
    # 初始提交
    #
    # 要提交的变更:
    #   (使用 "git rm --cached <file>..." 撤出暂存区)
    #
    #       新文件:    hello.txt
    #
    # -m 设置标签,用来分辨文件 
    # "first" 标签名 随便填写
    # 用 commit 之前 必须声明用户名和邮箱,否则无法提交到本地仓库。
    [root@localhost test]# git config --global user.name "k" # 设置用户名
    [root@localhost test]# git config --global user.email  1248287831@qq.com # 设置邮箱名
    设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:
    
     git commit --amend --reset-author 
  • 文件回溯: 在暂存区回溯
    [root@localhost test]# echo 111 >> hello.txt 
    [root@localhost test]# git add hello.txt
    [root@localhost test]# git status 
    # 位于分支 master
    # 要提交的变更:
    #   (使用 "git reset HEAD <file>..." 撤出暂存区)
    #
    #       修改:      hello.txt
    #
    [root@localhost test]# cat hello.txt 
    lmk
    111
    [root@localhost test]# git reset HEAD hello.txt # 把文件撤出暂存区
    重置后撤出暂存区的变更:
    M       hello.txt
    [root@localhost test]# git checkout -- hello.txt #返回hello.txt之前的内容
    [root@localhost test]# cat hello.txt 
    lmk
  • 文件回溯: 在本地仓库回溯
    [root@localhost test]# echo 222 >> hello.txt 
    [root@localhost test]# git add hello.txt # 加入暂存区
    [root@localhost test]# git commit -m "second" # 提交到本地仓库
    [master 2164542] second
     1 file changed, 1 insertion(+)
    [root@localhost test]# cat hello.txt 
    lmk
    222
    [root@localhost test]# git log # 查看提交日志
    commit 216454239076b6b5637e013b7b701905c9fff5af # 提交ID
    Author: k <1248287831@qq.com>
    Date:   Tue Mar 10 16:59:19 2020 +0800 # 提交时间
    
        second # 提交标签 第二次提交的
    
    commit c3b610c18e1a8815fe12b051afe5ecd9c1061db2 # 提交ID
    Author: k <1248287831@qq.com>
    Date:   Tue Mar 10 16:41:25 2020 +0800 # 提交时间
    
        first # 提交标签 第一次提交的
    [root@localhost test]# git reset --hard c3b610c18e1a8815fe12b051afe5ecd9c1061db2 # 指定first的commit信息,回溯到first状态
    HEAD 现在位于 c3b610c first
    [root@localhost test]# cat hello.txt 
    lmk

小结

这章先写到这里,继续往下写的话有点多了,和看笔记没什么区别,下一章写,git远程仓库:
  - github
  - gitlab
   

 









   
   

本博客所有文章是以学习为目的,如果有不对的地方可以一起交流沟通共同学习 邮箱:1248287831@qq.com!