小言_互联网的博客

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

265人阅读  评论(0)

一、什么是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


转载:https://blog.csdn.net/qzc70919700/article/details/128477718
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场