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> 比较分支之间的差异
相关推荐
集3041 天前
C++多线程学习笔记
c++·笔记·学习
知南x1 天前
【正点原子STM32MP157 可信任固件TF-A学习篇】(2) STM32MP1 中的 TF-A
stm32·嵌入式硬件·学习·stm32mp157
YJlio1 天前
Active Directory 工具学习笔记(10.0):AdExplorer / AdInsight / AdRestore 导读与场景地图
网络·笔记·学习
子夜江寒1 天前
Python 学习-Day8-执行其他应用程序
python·学习
●VON1 天前
从单机应用到分布式调度:基于 HarmonyOS 构建车-空协同任务引擎
学习·华为·harmonyos·openharmony·开源鸿蒙
万变不离其宗_81 天前
http学习笔记
笔记·学习
盐焗西兰花1 天前
鸿蒙学习实战之路 - 避免冗余刷新最佳实践
学习·华为·harmonyos
Lynnxiaowen1 天前
今天我们继续学习Kubernetes内容pod资源对象
运维·学习·容器·kubernetes·云计算
xier_ran1 天前
关键词解释:对比学习(Contrastive Learning)
人工智能·深度学习·学习·机器学习·对比学习
andwhataboutit?1 天前
GAN学习
深度学习·学习·生成对抗网络