7.git回退版本
git回退版本
放弃本地修改
没有添加到暂存区
# 放弃工作区的文件
git checkout – filepathname
git checkout .
已提交到了暂存区,想放弃暂存区里的提交
git reset HEAD filepathname (比如: git reset HEAD readme.md)
git reset HEAD .
git reset --hard HASH # 返回到当前版本,不保留修改。
git reset --soft HASH # 返回到当前版本,保留修改
回退版本(已提交代码)
谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。
git reset --hard HEAD^ #返回到上次提交版本
git reset --hard head #当前版本
git reset --hard HEAD^ #回退到上一个版本
git reset --hard 76eac54 #回退到指定版本
soft.mixed.hard区别
soft、mixed和hard是git中三种不同的回滚方式。
soft方式: 本地库的指针移动了,已经add的暂存区以及工作空间的所有东西都不变,保留修改
mixed方式:默认的方式,HEAD指针回滚到指定的提交id,重置暂存区, 工作区不动,工作区保留修改
hard方式: HEAD指针回滚到指定的提交id ,本地仓库、暂存区、工作区都会回滚,本地的代码也会变为某个版本的内容.
git log查看
git log : 查看详细历史记录,按提交时间倒叙排列,包含提交时间,提交作者,提交备注以及提交的hash值
git log --pretty=oneline : 格式化log形式,每条log只有一行,只包含 完整的hash值 和 提交的备注
git log --oneline : 格式化log形式,每条log只有一行,只包含 短hash值 和 提交的备注
【注】2和3的区别就是 展示的hash值的长短,短hash就是完整hash截取了前7位的表示形式。
git log -n 3 : 只展示最新的 几条 日志,-n 后面的数字就表示 要展示的条数;
git log --graph : 会展示历史提交的分支路线;
其他说明
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改,已有的改动会丢失。
git reset --soft HASH #返回到某个节点, 保留修改,已有的改动会保留,在未提交中,git status或git diff可看。
git clean -df #返回到某个节点,(未跟踪文件的删除)
git clean 参数
-n 不实际删除,只是进行演练,展示将要进行的操作,有哪些文件将要被删除。(可先使用该命令参数,然后再决定是否执行)
-f 删除文件
-i 显示将要删除的文件
-d 递归删除目录及文件(未跟踪的)
-q 仅显示错误,成功删除的文件不显示
注:
git reset 删除的是已跟踪的文件,将已commit的回退。
git clean 删除的是未跟踪的文件
参考资料
https://blog.csdn.net/qq_39505245/article/details/119788832
https://blog.csdn.net/carolzhang8406/article/details/49761927