一、git本地仓库
1. 进入git bash,鼠标右键进入git bash 界面
2. 在D盘目录下,创建一个git仓库文件夹
3. 设置用户名和邮箱
4. 本地仓库的初始化操作
通过勾选查看方式,可以看到git 为我们添加了很多配置文件:
5. 在git中添加文件并管理,使用add和commit命令
【0】我们先了解,git的本地结构目录是如何对应 add 和 commit 命令的使用场景的
【1】先创建一个文件
【2】将文件提交到暂存区
【3】将暂存区的内容提交到本地库
注意事项:
(1)不放在本地仓库中的文件,git是不进行管理的
(2)即使放在本地仓库中的文件,git也不管理,必须通过 add, commit 命令操作才可以将内容提交到本地库
6. 使用 git status 查看工作区和暂存区的状态
【1】在上面已经使用 add 和 commit 命令将文件提交到了本地库,所以当前“nothing to commit,”表示没有其他文件需要 commit 到本地库
【2】创建一个文件,然后查看状态:
提示:新创建的文件需要使用 git add 命令将新创建的文件进行跟踪
【3】将demo0.txt 使用 git add 命令提交到暂存区,并查看状态
"Changes to be committed:"表示暂存区有changed,可以使用 commit 提交到本地库
【4】 将暂存区的文件提交到本地库,再查看状态
【5】修改 demo0.txt 文件内容,并查看状态
【6】将修改的文件提交到暂存区、本地库之后,再查看状态
7 git log 查看提交记录
【1】使用如下命令添加多个文件和记录,添加了demotest6.txt /demotest7.txt /demotest8.txt /demotest9.txt /demotest10.txt
【2】使用更简洁的方式查看日志
【3】其他方式 git log --oneline
【4】git reflog
多了信息:HEAD@{数字}
这个数字的含义:指针回到当前这个历史版本需要走多少步
8. reset 命令 :前进或后退历史版本
可以看到,git reset 命令需要接 commit 索引号
【0】首先创建一个空文件
【1】继续插入两次修改,bbbb、cccc
【2】将 HEAD指针回退到 bbbb 的修改记录,可以看到 test_reset.txt 文件内容确实回退了
【3】HEAD指针继续回退和前进, test_reset.txt 文件内容也跟着变化
9. reset 命令的参数解析
如下图,工作区中对文件 Demo.txt 做了改动,通过add 命令将改动同步到暂存区,通过commit 命令将改动同步到本地库。
(1)git reset --hard [索引]
本地库的指针移动的同时,重置暂存区,重置工作区
(2)git reset --mixed [索引]
本地库的指针移动的同时,重置暂存区;工作区不动
(3)本地库的指针移动的同时,暂存区和工作区都不动
10. 删除文件,找回本地库中删除的文件
【1】创建新文件并同步到暂存区、本地库
【2】删除文件,并同步到暂存区、本地库
【3】找回本地库中删除的文件,实际上就是将历史版本切换到刚才添加文件的版本即可
11. 找回暂存区删除的文件
【1】当前HEAD节点所处的位置,是增加文件
【2】误操作,将暂存区的文件删除了
【3】恢复暂存区被删除的文件
12. diff 命令
【1】创建新文件,并同步到暂存区、本地库
【2】文件中添加原始内容:aaaa
【3】改变工作区中test_diff.txt的内容,导致工作区与暂存区不一致。并使用diff命令比对:
总结:git diff <文件名> 将工作区的文件和暂存区的文件进行比较
【4】当前HEAD节点指向test_diff.txt插入aaaa的时候,此时我们git add test_diff.txt,导致工作区和暂存区进行同步,但是暂存区和本地库不同步
【5】可以看到,此时暂存区和本地库的区别,在于增加了bb字符
【6】提交本次追加bb字符,此时工作区、暂存区和本地库完全同步
【7】再次修改test_diff.txt内容,并同步到暂存区。可以看到跟“insert aaaa”记录相比,暂存区和本地库比对的结果是:aaaa内容,变更成了a字符。
总结:git diff <历史版本> <文件名> :比较暂存区和工作区中的内容