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> 比较分支之间的差异
相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习