目录
常用命令概览
1. 设置用户签名
2. 初始化本地库
2.1 初始化本地库
2.2 查看文件
2.3 查看隐藏文件
2.4 进入到下一个目录
3. 查看本地库状态
4.添加暂存区
4.1 删除文件
5. 提交本地库
5.1 将暂存区的文件提交到本地库
6. 查看版本信息的命令
7.修改文件
8. 历史版本
8.1 查看历史版本
8.2版本穿梭
常用命令概览
1. 设置用户签名
Git首次安装必须设置一下用户签名,否则无法提交代码
这里设置的用户签名和将来登陆GitHub(或其他代码托管中心)的账号没有任何关系
用户名
git config --global user.name Layne
邮箱
git config --global user.eamil Layne@atguigu.com
那怎么验证呢?
在此目录下找到.gitconfig配置文件
我的是在此目录下(不同人的文件名不一样,具体可查看jd@DESKTOP-RGE9A09,我的是jd,所以在jd文件夹下)
打开文件之后发现我们配置的就在里面写着
2. 初始化本地库
为了方便,我们可以在目录中进入Git Bash Here(依然是右键点击)
然后就会出现下图的页面
2.1 初始化本地库
git init
初始化完成之后就会出现下图,并且提示,有一个空的Git库在这个路径下
我们回到我们刚刚的文件夹下,确实是有一个(这个文件是一个隐藏文件)
有的小伙伴没有这个文件也不用担心,找到下图所示的位置,勾选“隐藏的项目”就可以看到了
2.2 查看文件
ll
发现没有,因为这是一个隐藏文件,这个命令无法查找
2.3 查看隐藏文件
ll -a
如下图所示,我们发现有文件
2.4 进入到下一个目录
3. 查看本地库状态
git status
"On branch master" 表示:当前本地库再master分支里面
"No commits yet"表示:目前还没有任何东西提交,空的Git库
"nothing to commit"表示:没有什么东西需要提交
那我们下面就创建一个文件试试
“i” 进入写状态,“Esc”退出,“yy”赋值,“p”粘贴,“:wq”退出并保存
运行一下,查看文件内容
查看末尾第一行
再次查看本地库
明眼人一眼就看出来了和刚刚查看本地仓库有所不同
第一行第二行都没变
但是第三行变了,发现了没有被追踪的文件,
hello.txt是红的含义:是有了但是只存在于工作区,还从来没有追踪过这个文件
4.添加暂存区
我们在上一部分发现hello.txt未被追踪,接下来我们就进行处理
hello.txt是红的含义:是有了但是只存在于工作区,还从来没有追踪过这个文件
git add hello.txt(文件名)
但是我们发现上图有两个警告:
Git默认转换了行末换行符,“LF”将替换“CRLF”
再次查看本地库状态
由上图中,前两行还是没有变,第三行又变了,由红色变成绿色
但是此时hello.txt文件知识存放到暂存区里面(此时文件是可以删掉的),怎么删掉也提示了
4.1 删除文件
git rm --cached<file>
删除的时候,只是把暂存区中的文件删除掉了,但是工作区(硬盘)还是存在的,下图就可以证明我的想法
5. 提交本地库
5.1 将暂存区的文件提交到本地库
git commit -m "日志信息" 文件名
警告:转换了行末换行符
master主干分支有“first commit”这个版本,一个文件被改变,16行内容被插入
再次执行查看本地库的命令
上图中,“主干分支”还有
但是“No commit yet”没有了,因为我们提交过了 ,已经有自己的版本信息了
第三行表示提交以后没有新增也没有修改,这个树是干净的
6. 查看版本信息的命令
git reflog
下图中已经有一个版本了,“1c2aa8a”是版本号 ,这个版本号是前七位(精简版)
下面这个命令是详细日志的命令,既能看到版本,也能看到谁提交的这个版本
git log
且线面黄色很长的那个就是一个完整版的版本号(完整版)
7.修改文件
模拟代码版本的迭代
先修改一下文件
查看本地库状态
红色的信息表示:hello.txt文件被修改了,并且红色说明这个文件在修改之后还没有添加到暂存区
追踪一下,再次存放到暂存区
查看本地库状态
提交本地库
一个文件被修改,一行新增,一行删除 (先把修改的那一行的原内容删掉,再新增一行我们修改后的内容,故这么提示)
再次查看本地库状态
查看版本信息
发现我们已经有两个版本了,如下图所示,指针是指向第二个版本的
只要指针指向第二个版本,我们就可以查看第二个版本的内容,如下图所示
虽然此时已经有了两个版本,但是我们的硬盘中还是一个文件,底层是理由指针来控制版本的
8. 历史版本
8.1 查看历史版本
刚刚已经介绍过了,两个命令
git reflog
下图中已经有一个版本了,“1c2aa8a”是版本号 ,这个版本号是前七位(精简版)
下面这个命令是详细日志的命令,既能看到版本,也能看到谁提交的这个版本
git log
且线面黄色很长的那个就是一个完整版的版本号(完整版)
8.2版本穿梭
怎么由版本2穿梭会版本1?
首先查询当前版本号,将版本号(我们要穿梭过去的版本好)复制下来
我们向穿梭回版本一,所以记录“1c2aa8a”
命令:
git reset --hard 版本号
我们再查看一下,明显发现指针指向了版本一,因为我们做了一次操作,也会记录下日志,很棒棒
我们再查看一下txt文件,发现确实是版本一的内容,很棒棒,说明版本确实发生了变化
我们找到下图所示的配置文件
发现指针指向master,说明我们当前是在master这个分支上
那我们怎么知道在master上的哪个版本呢?
找到文件夹refs/heads,打开下面这个文件
明显看到一个版本号,也就是版本一的版本号
总结:指针指向master分支,而master分支又指向了第一个版本
形象的步骤: