Git笔记(三)版本管理
本文最后更新于:19 小时前
查看commit历史、reset版本回退、revert版本撤销、标签管理
Git笔记(三)版本管理
一、查看commit历史
1.1、查看所有commit
1 | |
1.2、查看历史git命令
1 | |
1.3、查看用户git操作历史
1 | |
git shortlog -sn输出的次数是指现存的commit中,有多少是属于该用户的;并非指该用户commit了多少次(两者还是有区别的)
二、版本管理
2.1、reset回退
版本回退,回退之后,不保留目标节点之后的历史记录,一般用于重设修改。
1 | |
- 参数:(可选),缺省默认为mixed
- –hard,更改HEAD的指向,替换暂存区和工作区的内容,使其与HEAD指向的目录树一致
- –mixed,更改HEAD的指向,重置暂存区、不改变工作区,原节点和reset后节点的变更差异集放入工作区
- –soft,只改变HEAD的指向,不修改暂存区和工作区,原节点和reset后节点的变更差异集放入暂存区,(必须携带commitID参数)
- commitID:(可选),缺省默认为HEAD。有3种形式可以使用:HEAD、commitID7位缩写、commitID全写
3种模式比较
| hard | mixed | soft | |
|---|---|---|---|
| HEAD指向 | 改变 | 改变 | 改变 |
| 暂存区 | 重置修改 | 重置修改 | 不会被重置 |
| 工作区 | 重置修改 | 不会被重置 | 不会被重置 |
| 变更差异集 | 无 | 放入工作区 | 放入暂存区 |
| 适用场景 | 1.重置所有本地修改 2.丢掉目标commit之后所有修改 |
1.把暂存区的内容放回工作区 2.重做commit |
1.合并相邻的commit |
拓展:
- 场景:把暂存区的内容放回工作区,除了
git reset --mixed命令外,还可以用git checkout .实现 - 场景:重做commit,除了
git reset --mixed HEAD^+重新commit这种方法,还可以通过git commit --amend -m "message"实现
2.2、revert撤销
git revert命令,跟git reset用法基本一致,git revert 撤销某次操作,此次操作之前和之后的 commit和history都会保留,并且把这次撤销,作为一次最新的提交,一般用于撤销公开的提交
与git reset差别
- git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit
- git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容
命令
1 | |
三、标签
标签实际上是版本库的一个快照,是指向某个commit的指针。
1 | |
Git笔记(三)版本管理
http://timegogo.top/2023/02/23/Git/Git笔记(三)版本管理/