第01讲:Git安装及基本操作

一、什么是Git

版本控制系统(VCS)是将『什么时候、谁、对什么文件做了怎样的修改』这样的信息以版本的形式保存并进行管理的系统。

简单来说,版本控制系统会去记录它所管理的文件的『历史版本』。

版本控制系统 “不是网盘,而胜似网盘” :

  • 它和网盘的相同点在于:它可以位于局域网,或者是外网上的一台服务器上,你和你的小伙伴们可以在不同的地方、不同的电脑上,以它为 “中介、桥梁” 共享文件。
  • 它胜似网盘的地方在于:它能记录你和你的小伙伴们对文件修改的所以历史版本,并且你可以将你的文件恢复到你感兴趣的某个历史版本。

Git 并非唯一的版本控制系统,它的前辈是 Subversion 。2014 年 Git 的市场占有率首次超过 Subversion ,成为主流。

Git 相较于 Subversion 的先进之处在于:

  1. Subversion 中的版本信息仅存在于中央仓库,而 Git 中所有的本地库中都有完整的历史版本信息。

  2. Subversion 中的 “分支” 很重,创建分支、删除分支、合并分支等分支相关操作很慢,而 Git 中的分支很轻,分支操作是 Git 的拳头特性

1.1、Git的工作机制

在这里插入图片描述

1.2、Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
局域网

  • GitLab

互联网

  • GitHub(外网)
  • Gitee码云(国内网站)

二、Git的安装

最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。由于开发机大多数情况都是windows,所以本教程只讲解windows下的git的安装及使用

第1步:安装Git

下载Git

在这里插入图片描述

初始化配置

打开Git命令界面,在使用 git 之前需要使用 config 命令配置下用户名和用户邮箱:

git config --global user.name "<用户名>"
git config --global user.email "<邮箱>"
git config --global push.default simple
git config --global core.editor notepad

在使用 git 之前创建 SSH Key,未来会使用到:

ssh-keygen -t rsa -b 4096 -C "备注"

# 一路回车

cat ~/.ssh/id_rsa.pub

『备注』通常是 2 种风格:

  • 邮箱
  • username@hostname,例如:tom@192.172.0.110

在这里插入图片描述

第2步:Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

三、Git的基本操作

3.1、创建本地版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力。

创建一个版本库非常简单。首先,选择一个合适的地方,创建一个空目录,在该文件夹中执行 git init,就可以让 Git 完成管理前的准备工作。

$ git init

执行成功后,你会看到类似如下信息:

Initialized empty Git repository in ...

Git 会在它管理的文件夹下创建名为 .git 的子文件夹,这个文件夹也就是逻辑上的『本地仓库』。它里面会存放被 Git 所管理的文件的相关信息(例如,历史版本)。

在这里插入图片描述

注意:你不要自己去操作 .git 目录,更不要随意将 .git 目录删除。这个目录下的内容是 Git 来使用和操作的。

当你执行完 git init 命令之后,当前目录就位于 Git 的监管范畴内,这个目录中的文件的变动(新创建的、被删除的、内容有更新的)都会被 Git 察觉。

3.2、Git 中文件的受管状态

Git 会将文件(文件夹)的状态分成以下 3 类:

状态说明
tracked被追踪tracked 状态意味着 Git 正在关注着这个文件。 你对这个文件的任何改动,都会被 Git 发现。Git 会进一步要求你提交你的改动,或撤销你的改动。
ignored被忽略的ignored 状态意味着 Git 完全不管这个文件,在 Git 看来它就跟不存在一样。
untracked不被追踪的untracked 状态是所有文件的初始状态。 逻辑上,它是 tracked 和 ignored 状态『之前』的一种状态,逻辑上,它是一种临时状态:你既没有要求 Git 监管它,又没有要求 Git 忽略它。 对于这个文件,Git 也是一脸懵逼不知道接下来该不该监测文件的变动,正因为如此,untracked 是一种临时状态,不应该长期存在。
注意
这里有 2 点需要强调的是:
    所有的文件的初始状态都是 untracked 。
    在正常情况下,文件不应该长期处于 untracked 状态,应尽快转变为 tracked 或 ignored 。

对于新创建的文件,它们都是处于 untracked 状态的,接下来它们应该尽快通过下述 2 种方法之一切换成 ignored 状态,或 tracked 状态。

untracked 
└──> ignored 

必须先在 Repo 文件夹中创建一个名为 .gitignore 的文件(必须是这个名字),
然后把要忽略的文件逐一列在这个文件中,一个文件一行,支持通配符。

windows上创建.gitignore文件:
  先任意创建一个文件,例如:1.txt
   在cmd中输入:ren 1.txt .gitignore

untracked 
└──> tracked 

可以使用 git add + git commit 命令,将它提交给 Git 监管即可。

3.3、查看本地库状态

1、基本语法

git add

2、案例实操

第1步:首次查看(工作区没有任何文件)

在这里插入图片描述

第2步:新增文件(hello.txt)

在这里插入图片描述

第3步:再次查看(检测到未追踪的文件)

在这里插入图片描述

3.4、添加暂存区

3.4.1、将工作区的文件添加到暂存区

1、基本语法
git add hello.txt
2、实操案例

在这里插入图片描述

3.4.2、查看状态(检测到暂存区有新文件)

在这里插入图片描述

3.5、提交本地库

3.5.1 将暂存区的文件提交到本地库

1、基本语法
git commit -m "日志信息" 文件名
2、案例实操

在这里插入图片描述

3.5.2 查看状态(没有文件需要提交)

在这里插入图片描述

3.6、修改文件(hello.txt)

在这里插入图片描述

3.6.1 查看状态(检测到工作区有文件被修改)

在这里插入图片描述

3.6.2 将修改的文件再次添加暂存区

在这里插入图片描述

3.6.3 查看状态(工作区的修改添加到了暂存区)

在这里插入图片描述

3.7、历史版本

3.7.1 查看历史版本

1、基本语法
git reflog 查看版本信息 git log 查看版本详细信息 
2、案例实操

在这里插入图片描述

3.7.2 版本穿梭

1、基本语法
git reset --hard 版本号
2、案例实操

首先修改hello.txt然后再次提交,我们可以看到有两次提交
在这里插入图片描述

现在将版本穿梭到第一次提交也就是my first commit
版本穿梭需要通过id,如果想要穿梭到my first commit,则需要通过id=1cd410d

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值