GIT 版本控制
【14 - 19 】
git log -> 查看版本历史
- git log --pretty=oneline -> 每个日志,只显示一行 [完整的hash值]
- hash值:简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
- git log --oneline -> 只显示部分hash值; 只显示HEAD 之前的历史版本
- git log --reflog -> 显示HEAD@{2} ,表示HEAD指针,表示到某个版本需要移动的步数;显示所有的历史版本,不像oneline一样只显示HEAD之前的历史版本;显示的是本地库版本操作的记录;
- tail -n 3 good.txt 显示文件的最后 3 行内容,其他内容不显示
- 多屏显示控制方式:空格,向下翻页;b 向上翻页;q,退出;
- pg up, pg down 也是有效的
前进后退
1、 基于索引值【推荐】
后退:git reset --hard [hash],只要git reflog中的hash就足够了,不需要完整的Hash
前进和后退是一样的,只要变更目标版本的hash值就行了
2、 使用^符号 (亦或符号)
git reset --hard HEAD ^ [一个^表示后退一步,n 个^ 表示后退 n 步]
只能后退,无法前进
3、 使用~符号
git reset --hard HEAD~3 -> 表示后退 3 步
PS. 选中了,就是复制了,不需要单独复制
4. 查阅git 文档
git help reset - > 查阅 reset 的帮助文档,是本地的
4. reset 命令的 3 个参数的对比:
-- soft
在本地库移动指针
--mixed
在本地库移动指针;
重置暂存区
--hard
在本地库移动HEAD 指针
重置暂存区
重置工作区
以上3 个参数,都会移动本地库的指针,区别在于是否移动工作区和暂存区的指针。
问题:那各个参数都在什么情况下使用?
index file -> 暂存区
working tree -> 工作区