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> 比较分支之间的差异
相关推荐
因为奋斗超太帅啦7 小时前
Git分布式版本控制工具学习笔记(一)——git本地仓库的基本使用
笔记·git·学习
Jeled7 小时前
RecyclerView ViewHolder 复用机制详解(含常见错乱问题与优化方案)
android·学习·面试·kotlin
可可苏饼干7 小时前
LVS服务器
linux·运维·笔记·学习·lvs
四谎真好看7 小时前
Java 黑马程序员学习笔记(进阶篇27)
java·开发语言·笔记·学习·学习笔记
gc_229914 小时前
学习C#调用OpenXml操作word文档的基本用法(7:Style类分析-5)
学习·word·openxml
AA陈超14 小时前
ASC学习笔记0014:手动添加一个新的属性集
c++·笔记·学习·ue5
Chunyyyen14 小时前
【第二十二周】自然语言处理的学习笔记06
笔记·学习·自然语言处理
hhcccchh15 小时前
学习vue第三天 Vue 前端项目结构的说明
前端·vue.js·学习
重启编程之路18 小时前
python 基础学习socket -TCP编程
网络·python·学习·tcp/ip