Git学习(2)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

[一、git reset](#一、git reset)

[二、git diff](#二、git diff)

比较两个版本之间的差异

总结

一、git reset

我们经常需要撤销之前一些修改内容或者回退到之前的版本

reset算法有三种用法如下

复制代码
get reset --soft  回退到某个版本并且保存工作区和暂存区

get reset --hard  回退到某个版本丢弃工作区和暂存区的内容

get reset --mixed 回退到某个版本保存工作区丢去暂存区

我们先创建几个文件,方便我们在后面展示

接下来我们commit -m和add

接下来我们复制原仓库三次

获取如下

复制代码
cp -rf repo repo-soft
cp -rf repo repo-hard
cp -rf repo repo-mixed



git reset --soft ID  相当于清楚仓库里的文件,但是本地文件还在

ls在使用ls看到工作区的文件

git ls-file  可以看到在暂存区也是存在的

建议谨慎使用hard这个,但是如果真的误触,可以使用git reflog命令来查看一下我们操作的历史记录,找到操作之前的版本号,使用get reset回退到之前的版本即可

二、git diff

可以用来查看文件在工作区,暂存区以及版本库之间的差异,还可以查看文件在两个版本之间的差距或者不同分支之间的差异

get diff 如果什么都不加的话,就默认比较是工作区和暂存区之间的差异

接下来我们还用上述的仓库进行操作

首先查看有几次提交操作

接着我们修改file3.txt文件的内容

最后我们输入git diff

现在修改后的文件还没有提交到暂存区,我们使用get add把其提交到暂存区中

然后使用git diff看一下结果

当然我们还可以比较工作区和版本库之间的差异只需要使用git diff HEAD就可以了

我们还可以比较暂存区和版本库之间的差异

git diff --cached

那我们现在来提交一下(到仓库中),可以看仓库和暂存区都一样了

比较两个版本之间的差异

git diff+两个想提交版本的ID即可

就可以体现两个版本之间的不同

还可以使用HEAD来表示当前分支的最新提交 ,在后续的学习我们会经常用到

我们还可以使用HEAD~表示上一次提交的版本号

还可以在HEAD~前加上数字表示,HEAD前几个版本

如果后面加上文件就只会显示文件修改的不同


总结

复制代码
git diff  工作区 vs 暂存区

git diff HEAD 工作区+暂存区 VS 本地仓库


git diff --cached/staged    暂存区vs本地仓库

git diff <commit_hash><commit_hash>/HEAD~ HEAD  比较提交之间的差异

git diff <branch_name><branch_name> 比较分支之间的差异
相关推荐
执笔论英雄3 小时前
【大模型学习cuda】入们第一个例子-向量和
学习
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
Gary Studio5 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice5 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
lingggggaaaa5 小时前
安全工具篇&动态绕过&DumpLsass凭据&Certutil下载&变异替换&打乱源头特征
学习·安全·web安全·免杀对抗
PP东5 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
学电子她就能回来吗5 小时前
深度学习速成:损失函数与反向传播
人工智能·深度学习·学习·计算机视觉·github
AI视觉网奇7 小时前
ue 角色驱动衣服 绑定衣服
笔记·学习·ue5
wdfk_prog9 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
ZH154558913110 小时前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter