美文网首页Git
git高级命令之代码回滚

git高级命令之代码回滚

作者: 天草二十六_简村人 | 来源:发表于2019-12-11 10:28 被阅读0次

一、背景

写代码总不可能一帆风顺,一直向前迭代。有时候,我们需要进行回滚到之前的版本。
本文主要介绍git命令如何进行代码回滚。

二、代码回滚相关命令

git命令.png

三、git命令的实际操作演练

1、git log

~/Documents/tag-service$ git log
image.png

2、

~/Documents/tag-service$ git revert e22c03c65ddfe3df412151f26de19f53decec3e7

缺点是:当提交代码的次数多,如果需要回滚的次数多,你需要逐个执行revert。

3、git reset 命令,git log不再出现被回退代码的痕迹。

~/Documents/tag-service$ git log
image.png
-- 8ff4e88d84022f882e79799726eb8b9fb0bbb1a5 是“日志格式统一”的提交点。

~/Documents/tag-service$  git reset --hard 8ff4e88d84022f882e79799726eb8b9fb0bbb1a5
~/Documents/tag-service$  git push --force origin master

强制重置到某个提交点,这时候,你再使用git log 查看,是看不到被重置的提交点的!


image.png

但是git reflog可以:

~/Documents/tag-service$ git reflog
image.png
 ~/Documents/tag-service$ git reset --hard e22c03c
HEAD 现在位于 e22c03c 测试提交1
~/Documents/tag-service$  git push --force origin master

使用git log 可以看到重置成功!


image.png

4、git rebase

操作实际上是将当前执行rebase分支的所有基于原分支提交点之后的commit打散成一个一个的patch,并重新生成一个新的commit hash值,再次基于原分支目前最新的commit点上进行提交,并不根据两个分支上实际的每次提交的时间点排序,rebase完成后,切到基分支进行合并另一个分支时也不会生成一个新的commit点,可以保持整个分支树的完美线性

5、git merge

操作合并分支会让两个分支的每一次提交都按照提交时间(并不是push时间)排序,并且会将两个分支的最新一次commit点进行合并成一个新的commit,最终的分支树呈现非整条线性直线的形式

6、”正规而正统”的方式来回退代码,rebase + revert

具体操作,可以参考文章:https://zhenbianshu.github.io/2019/05/ways_to_rollback_git_code.html
文章https://www.jianshu.com/p/4a8f4af4e803详细描述了rebase的操作细节。

相关文章

  • git高级命令之代码回滚

    一、背景 写代码总不可能一帆风顺,一直向前迭代。有时候,我们需要进行回滚到之前的版本。本文主要介绍git命令如何进...

  • git 代码回滚

    Git回滚代码到某个commit 回退命令:

  • GIT 常用命令随笔

    常用git 命令 git 代码回滚 先显示提交的log 回滚到指定的版本 强制提交 git 新建项目 git 修改...

  • git回滚和强制提交

    Git回滚代码到某个commit 回退命令:git reset --hard HEAD^ 回退到上个版本 git ...

  • git强制回滚版本

    Git回滚代码到某个commit回退命令: git reset --hard HEAD~3 回退到前...

  • git 命令

    同步远程master,清除本地代码 首次提交 git 命令 基本命令 日志命令 分支操作 代码回滚 参考:http...

  • 【git】日常操作

    回滚代码到某个commit 先git log,查看commit ID 回退命令: GIT或Gitlab修改密码之后...

  • Git

    git 命令每次都需要输入密码 解决方案:git bash进入你的项目目录,输入命令 代码回滚 切换远程分支 删除...

  • git回滚代码

    git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id【本地代码库回滚】:git reset ...

  • 谈谈 Git 代码回滚

    本文讲述了如何使用 git rebase -i 及 git cherry-pick 实现代码回滚。代码回滚属于高危...

网友评论

    本文标题:git高级命令之代码回滚

    本文链接:https://www.haomeiwen.com/subject/zmzngctx.html