在多人合作程序开发的过程中,我们有时会出现错误提交的情况,如交叉提交,活着有新代码没有pull直接commit等等一系列情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。
一、RESET命令
Git reset 命令有三个主要选项:
git reset --soft;
将HEAD引用指向给定提交。索引(暂存区)和工作目录的内容是不变的,在三个命令中对现有版本库状态改动最小。
git reset--mixed;
HEAD引用指向给定提交,并且索引(暂存区)内容也跟着改变,工作目录内容不变,这个命令会将索引(暂存区)变成你刚刚暂存该提交全部变化是的状态,会显示工作目录中有什么修改。
git reset--hard;
HEAD引用指向给定提交,索引(暂存区)内容和工作目录内容都会变给定提交时的状态,也就是在给定提交后所修改的内容都会丢失(没有commit的内容都会清空,所以请慎用哦)。
具体操作:
我们先分两种场景,
场景1:本地commit了,但还没push云端
场景2: 本地commit后,并且push云端了
对于场景1:
1. 查看版本号:
定位到项目下,使用命令“git log”查看历史提交记录,大概如下:
2. 根据你的需求,选择上面三种的一种命令将版本回退:
<