Git笔记(三)版本管理
本文最后更新于:3 个月前
查看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的指向,替换暂存区和工作区的内容(即取消git commit 和 git add 以及 工作区的修改),使其与HEAD指向的目录树一致
- –mixed,更改HEAD的指向,重置暂存区(即取消 git commit 和 git add)、不改变工作区,原节点和reset后节点的变更差异集放入工作区
- –soft,只改变HEAD的指向,不修改暂存区和工作区(即取消git commit),原节点和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
实现
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笔记(三)版本管理/