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> 比较分支之间的差异
相关推荐
赵长辉1 小时前
AGI-rag学习:ChromaDB使用1,txt类型文档【20251016课复习】
python·学习·llm·agi
赵长辉1 小时前
AGI-rag学习:ChromaDB使用2,json类型文档,问答类内容,【20251016课复习】
学习·agi
小小星球之旅8 小时前
CompletableFuture学习
java·开发语言·学习
盐焗西兰花8 小时前
鸿蒙学习实战之路-ArkTS循环渲染_ForEach使用指南
学习·华为·harmonyos
巧克力味的桃子9 小时前
单链表 - 有序插入并输出学习笔记
笔记·学习
坚持学习前端日记10 小时前
软件开发完整流程详解
学习·程序人生·职场和发展·创业创新
Wokoo710 小时前
开发者AI大模型学习与接入指南
java·人工智能·学习·架构
小猪佩奇TONY10 小时前
OpenCL 学习(3)---- OpenCL 第一个程序
学习
守护安静星空11 小时前
live555学习笔记
笔记·学习
航Hang*11 小时前
第1章:初识Linux系统——第13节:总复习②
linux·笔记·学习·centos