git版本回退操作(基于命令方式)
在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,
此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。
一、git reset 命令
命令说明:
git reset命令,恢复到一个旧版本并且旧版本之后的都不要。
该命令有四种选项模式:
git reset --soft 完全保留 工作区和暂存区,仅改变 HEAD的指向的位置(所有rese都会执行这个操作)。
git reset --mixed 完全保留工作区,彻底清除暂存区。
git reset --keep 彻底清除工作区和暂存区,保留工作区和HEAD之间的差异。
git reset --hard 彻底清除工作区和暂存区。
推送到远程仓库:
使用 git push -f 提交更改,此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,用“git push -f”强制推上去。
示例:
git reset --soft 4990bcf17465705a66326e1698f72c63ee2c214e
git reset --mixed 4990bcf17465705a66326e1698f72c63ee2c214e
git reset --keep 4990bcf17465705a66326e1698f72c63ee2c214e
git reset --hard 4990bcf17465705a66326e1698f72c63ee2c214e
二、git revert 命令
命令说明:
git revert 命令,恢复到一个旧版本并且旧版本后的都保留。
推送到远程仓库:
使用 git push 提交更改,因为git revert 本质是新增一条提交记录的,所以直接推送即可。
示例:
回退到上一个版本
git revert HEAD
回退到指定版本
git revert 4990bcf17465705a66326e1698f72c63ee2c214e
linhuaming