(二) git的安装与基础操作

一. Git的安装与配置

1.1 安装

点击红色方框按照自己的系统安装就可以了,安装程序一直点下一步就可以了。
在这里插入图片描述
Git安装地址

1.2 用户配置

1.2.1 配置用户信息
安装 Git 之后,要做的第一件事就是设置自己的用户名和邮件地址。因为通过 Git 对项目进行版本管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作

git config --global user.name "xxx"  //里面添你的用户名
git config --global user.email "xxx"  //里面添你的个人邮箱

注意:如果使用了 --global 选项,那么该命令只需要运行一次,即可永久生效。

1.2.2 Git 的全局配置文件
通过 git config --global user.name 和 git config --global user.email 配置的用户名和邮箱地址,会被写入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。我这里用vscode打开的,也可以用记事本打开,这里可以·查看自己曾经对 Git 做了哪些全局性的配置
在这里插入图片描述

1.2.3 检查配置信息
除了使用记事本查看全局的配置信息之外,还可以运行如下的终端命令,快速的查看 Git 的全局配置信息:

//查看所有的全局配置项
git config --list --global      

// 查看指定的全局配置项
git config user.name  
git config user.email

1.2.4 获取帮助信息
可以使用 git help 命令,无需联网即可在浏览器中打开帮助手册,例如:

//查看config命令的帮助
git help congif

如果不想查看完整的手册,那么可以用 -h 选项获得更简明的“help”输出:

git config -h

二.Git的基础操作

2.1 初始化仓库
如果自己有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,需要执行如下两个步骤:

  1. 在项目目录中,通过鼠标右键打开“Git Bash”
    在这里插入图片描述
  2. 执行 git init 命令将当前的目录转化为 Git 仓库
    在这里插入图片描述
    git init 命令会创建一个名为 .git 的隐藏目录,这个.git 目录就是当前项目的 Git 仓库,里面包含了初始的必要文件,这些文件是 Git 仓库的必要组成部分。
    在这里插入图片描述

2.2 工作区中文件的 4 种状态
工作区中的每一个文件可能有 4 种状态,这四种状态共分为两大类。
在这里插入图片描述
未被跟踪 (Untracked):不被 Git 所管理的文件

未修改(Unmodified):工作区中文件的内容和 Git 仓库中文件的内容保持一致

已修改(Modified):工作区中文件的内容和 Git 仓库中文件的内容不一致

已暂存(Staged):工作区中被修改的文件已被放到暂存区,准备将修改后的文件保存到 Git 仓库中

Git 操作的终极结果:让工作区中的文件都处于“未修改”的状态。

2.3 检查文件的状态 / 精简显示文件状态

git status // 查看文件状态

我在之前的文件夹创建了一个project.html文件
在这里插入图片描述
在git里面输入代码之后显示文件状态
在这里插入图片描述
可见文件是标红的,意思就是还没被git跟踪

//下面两行都是以精简的方式显示文件状态
git status -s
git status --short

可见前面有两个标红的?,意思就是文件还没被跟踪
在这里插入图片描述
2.4 跟踪新文件
使用命令 git add 开始跟踪一个文件,在后面跟上文件名字

//跟踪新文件/已修改的文件
git add project_03

运行之后,会看到 project.html 文件在 Changes to be committed 这行的下面,说明已被跟踪,并处于暂存状态
在这里插入图片描述
可见前面是由红色的问好变成了绿色的A

2.5 提交更新
现在暂存区中有一个 project.html 文件等待被提交到 Git 仓库中进行保存。可以执行 git commit 命令进行提交,其中 -m 选项后面是本次的提交消息,用来对提交的内容做进一步的描述,也就是说在这后面可以写上你的备注,简要说明白这次的修改做了些什么方便以后查看。

//提交文件,xxx是写备注
git commit -m "xxxx"

在这里插入图片描述

----------------------------------分割线-------------------------------------

现在我们已经掌握了一些对git仓库的初始化,并且跟踪文件,查看文件状态以及提交文件,这些是一开始的时候,在创建一个新仓库里面之后所做的操作,那么我们以后要是修改了其中的文件会怎么样呢?请往下看。

----------------------------------分割线-------------------------------------

2.6 对已提交的文件进行修改
目前, project.html 文件已经被 Git 跟踪,并且工作区和 Git 仓库中的 project.html 文件内容保持一致。当我们修改了工作区中project.html 的内容之后(我只是简单的写了一些html的代码,不懂的也没关系,反正就是修改了文件的内容)
在这里插入图片描述
当我们再次运行 git status 和 git status -s 命令,会看到如下的内容:
在这里插入图片描述
它前面有一个红色的M,意思就是已修改了,详细的显示状态也是文件已经被修改了,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。

注意:修改过的、没有放入暂存区的文件前面有红色的 M 标记。

2.7 暂存已修改的文件
目前,工作区中的 project.html 文件已被修改,如果要暂存这次修改,需要再次运行 git add 命令,这个命令是个多功能的命令,主要有如下 3 个功效:
1.可以用它开始跟踪新文件
2.把已跟踪的、且已修改的文件放到暂存区
3.把有冲突的文件标记为已解决状态
在这里插入图片描述
2.8 提交已暂存的文件
我们在这里再次运行 git commit -m “提交消息” 命令,即可将暂存区中记录的 project.html 的快照,提交到 Git 仓库中进行保存:
在这里插入图片描述
2.9 撤销对文件的修改
撤销对文件的修改指的是:把对工作区中对应文件的修改,还原成 Git 仓库中所保存的版本。操作的结果:所有的修改会丢失,且无法恢复!危险性比较高,请慎重操作!

//最后面就是填文件的名字
git checkout -- project.html

撤销操作的本质:用 Git 仓库中保存的文件,覆盖工作区中指定的文件。

-------------------------------------------分割线-------------------------------------

上面是我们在修改过的文件后,再次对它进行git的一些基本操作,其实也是在重复第一部分的操作,也了解到了撤销对文件的修改checkout这一操作,但是慎重操作因为会丢失以前的修改数据。而下面哪部分是一些算是稍微高级一点点的操作,也有一些小的知识凑合在一起。

-------------------------------------------分割线-------------------------------------

2.10 向暂存区中一次性添加多个文件
如果需要被暂存的文件个数比较多,可以使用如下的命令,只需要在git add后面加个. 就可以了,一次性将所有的新增和修改过的文件加入暂存区:

//追踪多个文件
git add .

例如我创建了多个文件
在这里插入图片描述
在这里插入图片描述
今后在项目开发中,会经常使用这个命令,将新增和修改过后的文件加入暂存区。

2.11 取消暂存的文件
如果需要从暂存区中移除对应的文件,可以使用如下的命令

//xxx填文件名字
git reset HEAD xxx

2.12 跳过使用暂存区域
Git 标准的工作流程是工作区 → 暂存区 → Git 仓库,但有时候这么做略显繁琐,此时可以跳过暂存区,直接将工作区中的修改提交到 Git 仓库,这时候 Git 工作的流程简化为了工作区 → Git 仓库。
Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤:

//xxx就是提交时候的备注
git commit -a -m "xxx"

我创建了一个index.txt文件,使用该命令之后如下
在这里插入图片描述
2.13 移除文件
从 Git 仓库中移除文件的方式有两种:
1)从 Git 仓库和工作区中同时移除对应的文件
2)只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件

//从git仓库中和工作区中同时移除index.txt文件
git rm -f index.txt
//只从git仓库中移除index.txt文件,但保留工作区的index.txt文件
git rm --cached index.txt

2.14 忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 在这种情况下,我们可以创建一个名为 .gitignore 的配置文件,列出要忽略的文件的匹配模式。
文件 .gitignore 的格式规范如下:
1)以 # 开头的是注释
2)以 / 结尾的是目录
3)以 / 开头防止递归
4)以 ! 开头表示取反
5)可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)
2.15 glob 模式与 .gitignore 文件的例子
所谓的 glob 模式是指简化了的正则表达式:
1)星号 * 匹配零个或多个任意字符
2)[abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
3)问号 ? 只匹配一个任意字符
4)在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配
所有 0 到 9 的数字)
5)两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)
例子

// 忽略所有的.a文件
*.a

//即便忽略了.a文件,但跟踪所有的lib.a文件
!lib.a

//只忽略当前目录下的TODO文件,但是不会忽略togo/TODO的目录,也就是不会忽略下一级目录的文件
/TODO

//忽略任何目录下名为build的文件夹
build/

//忽略doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

//忽略 doc/ 目录及其所有子目录下的.pdf文件
doc/**/*.pdf

2.16 查看提交历史
如果希望回顾项目的提交历史,可以使用 git log 这个简单且有效的命令

//按时间先后顺序出现所有的提交历史,最近的提交是排在最上面
git log

在这里插入图片描述

//只显示最新的两条提交历史
git log -2

在这里插入图片描述

//在一行上显示最新的两条提交历史
git log -2 --pretty=oneline

在这里插入图片描述


//在一行上显示最近两条提交历史并自定义输出格式
git log -2 --pretty=format:" %h | %an | %ar | %s "

在这里插入图片描述
2.17 回退到指定的版本

//这里的<CommitID>是上面提交历史前面的一串字符
//它们代表的是文件的版本
git reset --hard <CommitID>

下面就是精华的操作,请稍花耐心看
下面的两幅图,我把index.txt文件清空了,注意到右边大小是0KB,也就是文件是一个空文件,清空了之后我也把文件提交到了。
在这里插入图片描述
在这里插入图片描述

下面两幅图是,我随便在txt文件中加了点内容,注意右边大小就变成了1KB了,我也把文件提交了

在这里插入图片描述
在这里插入图片描述

我们查看所有的提交历史
在这里插入图片描述

此时我们输如代码,回到清空了txt哪一个对应的值

//后面的值是不唯一的,这里是为了观察清晰一些
git reset --hard ba25cb3c56301ee7bcb8fed2244845f13699845e

在这里插入图片描述
当我们回到了之后,我们可以注意到txt文件的大小,已经从1KB变成了0KB了,也就是回到了清空txt文件的那个版本了。

下面我们再次查看提交历史

//这个是在旧版本中查看的提交历史
git reflog --pretty=oneline

在这里插入图片描述
我们再次使用这一行命令,跳转到最新的版本(也就是给txt添加了内容的版本)

git reset --hard <CommitID>

在这里插入图片描述
这里txt文件也变成了1kb。

回退到指定的版本小结:这里回到指定的版本,我们操作流程就是,先查看提交历史,可以得到一些提交历史对应的版本的唯一的值,其实这些值是哈希值。所有我们可以选定版本号,回退我们想要的版本,回退的时候,那些文件的内容也随之改变,清空了文件0KB,我们只是让读者可以更清晰看见变化。

总结
第一节我们从安装到配置这些基本的内容需要大家了解知道,然后学到了一些基础操作,如
1)初始化 Git 仓库的命令
git init
2)查看文件状态的命令
git status 或 git status -s
3)一次性将文件加入暂存区的命令
git add .
4)将暂存区的文件提交到 Git 仓库的命令
git commit -m “提交消息”

第二节还有学到了一些简便的操作,
如可以一次性提交多个文件
git add .
还有跳过使用暂存区域
git commit -a -m “备注”
还有一些移除文件,查看历史,回退版本的操作,而忽略文件我们可以作为了解,毕竟正则有一些人可能会没有学过。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值