目录

Git的命令学习适用小白版

Git的命令学习——适用小白版

浅要了解一下Git是什么:

Git是目前世界上最先进的的分布式控制系统。Git 和其他版本控制系统的主要差别在于, Git 只关心文件数据的整体是否发生变化 ,而大多数其他系统则只关心文件内容的具体差异。 Git 并不保存这些前后变化的差异数据

实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。

Git 中的 绝大多数操作 都只需要访问本地文件和资源, 不用连网 。但如果用 CVCS 的话,差不多所有操作都需要连接网络。因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。

一、创建版本库

在D盘下 目录下新建一个GiTtext版本库。右键通过命令行的方式打开窗口:

https://i-blog.csdnimg.cn/direct/1842d60e84c74e11969391657a635aaa.png

输入linux命令:git init 把这个目录变成git可以管理的仓库,如下:

https://i-blog.csdnimg.cn/direct/6bdb4ff3b1994d2c9a2d7126eb805a1a.png

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

https://i-blog.csdnimg.cn/direct/6a61329e6fa64176afed25f78b49c8f9.png

此时GiTtext目录下多了一个.git目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了。

输入:ll .git/查看内容信息:

https://i-blog.csdnimg.cn/direct/c951fe918f9244ea8a470d81fdae0611.png

二、在库中添加、修改文件

都是以linux命令为基础。首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。

1创建文件readme.txt, 此刻文件在工作区(WorkSpace)

输入命令:vi readme.txt 创建文件

https://i-blog.csdnimg.cn/direct/e56a7d7d82ab431a809329afe722b6b5.png

并进入到txt文件内:

https://i-blog.csdnimg.cn/direct/0e07ac12380e491ea62d769c50546893.png

2修改txt文件内容

输入i就进入编辑模式,可以输入“hello world” 。保存并退出,点击Esc再输入英文版“:wq”。查看txt文件信息:cat readme.txt

https://i-blog.csdnimg.cn/direct/7aea7d71301e4fa5b28f3201c8853de5.png

3通过git status可以查看文件追踪的情况:

4 使用命令 git add readme.txt添加到暂存区里面去:

查看此时文件状态:

https://i-blog.csdnimg.cn/direct/ac6d5cb34d2d4d5ca8d28c69bac42dd4.png

如果要提交多个文件,我们可以在add后面指定文件的列表。输入:git add test2.txt test3.txt

如果想要添加工作区所有文件到暂存区,输入:git add .

5 撤销1.4命令回到工作区,输入:git rm –cached readme.txt

https://i-blog.csdnimg.cn/direct/0ce68697d80847b5973a08d787990ded.png

再次查看文件状态: https://i-blog.csdnimg.cn/direct/4cbeab47972a4a08b5da60ae9c82e004.png

三、提交文件到主分支:git commit -m ‘first commit’

现在我们已经提交了一个readme.txt文件了 【

注意:注释是必须要写的】

但是发现报错了,我们需要设置Gitee的email和名字 https://i-blog.csdnimg.cn/direct/3a8d5ddc1ccd42379d435644347c0dba.png

命令如下:

git config –global user.email “ ”

git config –global user.name “Your Name”

将引号里的内容修改为你对应的邮箱和姓名

再次输入 git commit -m ‘first commit’,可以得到: https://i-blog.csdnimg.cn/direct/e973a2348771486f938df5606c55ab0c.png

查看状态: https://i-blog.csdnimg.cn/direct/b12fa0eb3cc745e895fde77f18e8a639.png

即现在已经没有文件未提交。 情况如下:

https://i-blog.csdnimg.cn/direct/8bc4fec758654ce98e727f2a968d62fc.png

我们下面可以通过命令git status来查看是否还有文件未提交

四、修改已提交到暂存区的文件

在文件中加入一行update 1。查看git的状态——文件又进入到工作区 https://i-blog.csdnimg.cn/direct/6b86cc6df1f5432ea3e5c1c46c177073.png

这段 Git 输出的意思是:

1)当前处于 master 分支,且该分支还没有任何提交记录

2)存在未跟踪的文件 readme.txt (未被 Git 纳入版本控制)

3)Git 提示可以通过 git add readme.txt 将这个文件添加到暂存区(Staging Area)

提交修改后的文件,依次输入


# 将 readme.txt 文件添加到暂存区
git add readme.txt
# 将暂存区的内容提交到本地仓库,并添加描述信息
git commit -m 'update 1 commit'

https://i-blog.csdnimg.cn/direct/c56a56fd786f4b068c907d979b71410c.png https://i-blog.csdnimg.cn/direct/b6e0f9afa0164c58ade70877746c4d0f.png

查看状态,已不在工作区: https://i-blog.csdnimg.cn/direct/d73bae9dd8044987b44a926e1469b6e6.png

想撤销这些修改并恢复到之前的状态时,可以使用命令: git checkout -- readme.txt https://i-blog.csdnimg.cn/direct/3f9480fbb4da410b851bd9c2babec584.png https://i-blog.csdnimg.cn/direct/adc48325048d4149adb8fdd74ff6a40c.png

五、版本回退

1.日志查看:git log

https://i-blog.csdnimg.cn/direct/561e0133812944b5a626171e8c53bf89.png

这表示这是一次更新操作的提交。

如果嫌上面显示的信息太多的话,我们可以使用命令 git log  pretty=oneline 。

2.版本回退和撤销

2.1版本回退

我想把当前的版本回退到上一个版本,可以使用如下2种命令,

git reset –hard HEAD^

那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset –hard HEAD~100 。

https://i-blog.csdnimg.cn/direct/f3d884344d8c4072b2e9e093cb3858e1.png

可以发现出现错误,是因为我就提交过一次。那我进行修改再提交再看,即版本回退成功

https://i-blog.csdnimg.cn/direct/75f0e812955c49939e6629d6147d2da1.png

查看日志,按理来说日志中原来有第二次提交的信息,但是没有,所以回退成功: https://i-blog.csdnimg.cn/direct/99efc89fbf23455498c8975f2258bfe0.png 同时我们也可以通过sha1的前四位来做回退:git reset –heard sha1

2.2回退撤销

可以通过命令即可获取到版本号:git reflog

https://i-blog.csdnimg.cn/direct/cc9ef5edf5e14d33a69a6c7d3ef0edd1.png

通过上面的显示我们可以知道,增加内容update 2的版本号是 21feb0f 。我们现在可以命令:

git reset –hard 21feb0f,输出如下:

https://i-blog.csdnimg.cn/direct/09e5cb877efc4ed5901f89f44551a868.png

查看文件,已恢复: https://i-blog.csdnimg.cn/direct/b7d86a61553d4632a68cf6029dea6319.png

查看日志: https://i-blog.csdnimg.cn/direct/6bbe3428d67f4d35a24ff9de842be0d7.png

六 、删除文件

查看添加的文件:

https://i-blog.csdnimg.cn/direct/d8559e2b904e4df89c730e056905b6a0.png

想要删除readme.txt ,使用命令:git rm readme.txt。查看: https://i-blog.csdnimg.cn/direct/ca5152c5078241feaac33f44db1cae27.png

我们发现删除的文件直接进入暂存区(此刻需要注意,如果使用rm删除不在暂存区,需要git add才会进入暂存区。如果进入暂存区可以退回工作区,使用命令: git reset HEAD test.txt

七、Git配置信息Config

1.config概述

在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:

1、仓库级别 local 【优先级最高】

2、用户级别 global【优先级次之】

3、系统级别 system【优先级最低】

git 仓库级别对应的配置文件是当前仓库下的.git/config

git 用户级别对应的配置文件是用户宿主目录下的~/.gitconfig

git系统级别对应的配置文件是git安装目录下的 /etc/gitconfig

我们可以在cmd命令提示符中输入以下查看配置信息 :git config –local -l,如下:

https://i-blog.csdnimg.cn/direct/918df44ba2584981b183b453f94208da.png

git config –global -l

https://i-blog.csdnimg.cn/direct/197b5133159a4dc39b36b6fde0d62da0.png

git config –system -l

https://i-blog.csdnimg.cn/direct/903fd695909e4049ada095dd0a9a105d.png

2.config修改

修改用户名和邮箱:

git config –global user.name “***”

git config –global user.email “****@**.com”