Git回退版本
Git回退版本的几种操作
场景:当我们在使用Git进行版本控制时,可能会遇到以下几种需要回退版本的场景:
场景一:如果想将代码恢复到之前某个提交的版本,且那个版本之后提交的版本都不要了,这种场景常发生在合并分支时合并结果不符合预期,就可以使用 git rest(恢复到一个旧版本并且旧版本后的都不要)
- 原理:git reset --hard命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。
- 操作:
1、查看版本号:git log
查找历史或使用git reflog
命令查找合并操作的commit ID,也可以上代码托管网页上查看history,找到需要回滚的目标版本号
2、 使用git reset --hard 版本名
命令将版本回退。此命令会将HEAD指针、当前分支指针和索引区都指向指定的commit ID,并重置工作区为该版本。
3、使用git push -f
提交更改,此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,用“git push -f”强制推上去。
场景二:如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。(恢复到一个旧版本并且旧版本后的都保留)
我们commit了三个版本,突然发现版本2有bug,想要撤销版本2,但又不想影响版本3的提交,就可以用 git revert 命令来反做版本2,生成新的版本4,这个版本4里会保留版本3的东西,但撤销了版本2的东西。
- 原理:git revert命令会生成一个新的提交,该提交会包含撤销指定提交的更改,从而达到回退版本的效果。
- 操作:
1、查看版本号:git log
查找历史或使用git reflog
命令查找合并操作的commit ID,也可以上代码托管网页上查看history,找到需要回滚的目标版本号
2、
(1) 使用git revert -n 版本号
反做
注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名
(2)提交,使用git commit -m 版本名
提交
(3) 使用git push
推上远程库:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 うずまきナルト!
评论