回滚代码

工作中我们时常会遇到回滚代码的需求

分两种情况,push上去了,和没有push(只是commit/add了)

如果没有push上去,命令是 git reset,如果push上去了使用git revert

git reset 的功能是回退本地的代码,并不会改变线上的代码,git reset 有3个参数可用

1.git reset --mixed +版本号    暂存区(add区)和提交区(commit区)会回退到某个版本,本地的代码不会改变。

2.git reset --soft +版本号      提交区(commit区)会回退到某个版本,暂存区(add区)不会回退,本地代码不变。

3.git reser --hard +版本号     暂存区(add区)和提交区(commit区)会回退到某个版本,本地的代码会改变。

git revert 的功能是回退线上代码

git revert +版本号 -》输入commit的message,生成一个新的commit,-》push 覆盖线上的版本

这样就完成了线上版本的回退

git revert 的快捷命令

git revert HEADE  回退到上一次提交的版本

git revert HEADE^ 回退到上上次提交的版本

下面介绍用命令行回滚和用sourceTree回滚代码

我在工作中使用sourceTree工具,如果想把本地代码重置到某一次提交,可以在想回到的版本的位置右键,选择右键菜单中的‘将xxx重置到这次提交’,

在提示框中点击确定,此时本地仓库中的代码回退到了选中的版本中,也就相当于commit之前,然后在‘文件状态中’出现了你的本地代码和本地仓库中的代码不同的部分,也就相当于你现在在本地代码中修改的部分。

分支旁边也会出现箭头

向下的箭头表示你本地的代码和线上仓库中的代码有7处差别

此时如果想放弃本地代码的更改,使用线上仓库的代码版本,可以选中文件,右键,在右键菜单中选择‘重置’

在弹出的确认框中点击确定,此时就放弃了你本地代码的更改,现在‘拉取’线上代码

就会同步线上仓库的代码到本地,此时本地仓库的代码和线上仓库就版本一致了。

命令行的回滚 git reset --hard 465dd43

在分支旁边显示和线上版本的差距,此时‘拉取’,就会同步本地的代码为线上代码的版本。

以上这些都是适用于coomit之后,push之前,想回退commit的内容的场景,线上仓库的代码版本是没有回退的,回退的只是本地仓库的版本

如果想回滚线上仓库的版本怎么办呢?

先说命令行的方式 git revert +版本号 意思是回退xxx版本提交的修改,也只会回退xxx版本提交的修改,如果最新版本和xxx版本之间还间隔着其他版本的修改,其他版本的修改是不会回退的。

如果回退的时候出现冲突,如下图,需要手动解决冲突,再commit

之后执行git push ,完成线上版本的回退

再来看sourceTree,在想要回滚的版本位置右键-选择提交回滚,如果有冲突需要手动解决,然后push,完成线上版本的回退

有点啰嗦地整理完了,希望对日后地工作有帮助

原文地址:https://www.cnblogs.com/lijianjian/p/9636339.html

时间: 2024-10-09 20:44:36

回滚代码的相关文章

git用法之[回滚代码]

我们在写代码的任何过程中,都有可能出错,任何过程都有可能要!回!滚!代!码!事关重大!一定要详细讲讲. 一.关于 工作区.暂存区.本地分支: 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的. 暂存区:已经 git add xxx 进去,且未 git commit xxx 的. 本地分支:已经git commit xxx 提交到本地分支的. 二.遇到想回滚代码时后怎么办? 1.在工作区的代码,被我写乱了,或者

关于调用方有事务,被调用的SP中也有事务,在嵌套SP中回滚代码的报错处理,好文推荐

SQL报错异常:Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, current count = 0. --首先明确一点,在SQL中开启事务时,Begin Tran时,@@TRANCOUNT会加1,Commit Tran时@@TRANCOUNT会减1,但是当ROLLBACK TRAN时会把@@TranCount直接设置

Git回滚代码暴力法

Git回滚有多种方式,这里使用的是[强制提交到远程分支] 效果为:如回滚前的提交记录是 1.2.3.4,使用这种方法回滚到2,那么提交记录就变成了1.2. 操作方法: 需要在本地的Git仓库,右键选择[Git Bash],输入reset --hard 命令 $ git reset --hard commit-id $ git push -f origin currentBranch 第一句作用是恢复到指定的版本,commit-id替换为对应的版本编号,在下面介绍如何获取 第二句的作用是把当前分支

上线代码、回滚代码

上线脚本 #!/bin/bash FWDIR="$(cd `dirname "${BASH_SOURCE-$0}"`; pwd)" bin=`dirname "$0"` bin=`cd "$bin"; pwd` now=`date "+%Y%m%d_%H%M%S"` tag_release=di.release.${now} [email protected]:bdp-server/bdp-di.git e

Git回滚代码

回滚命令: 1.回退到上个版本 $ git reset --hard HEAD^ 2.回退到前2次提交之前,以此类推,回退到n次提交之前 $ git reset --hard HEAD~2 3.退到/进到 指定commit的sha码 $ git reset --hard commit_id 然后强推到远程: $ git push origin HEAD --force 原文地址:https://www.cnblogs.com/Dev0ps/p/11614023.html

Git回滚代码操作

1.本地回滚到你要的版本:git reset --hard 489a525ee 2.将回滚到的版本[强制]push要远程分支:git push -f origin weixin2.6.19 3.本地切换到别的分支,然后删除回滚的分支 weixin2.6.19 4.重新切换到远程的分支 weixin2.6.19 原文地址:https://www.cnblogs.com/Mr-Echo/p/12099601.html

Git回滚代码到某个commit

回退命令: $ git reset --hard HEAD^ 回退到上个版本$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git reset --hard commit_id 退到/进到 指定commit的sha码 强推到远程: $ git push origin HEAD --force  

git master 回滚代码

回退到指定版本 f6a3d430 (为commit id 前8位) git reset --hard f6a3d430 强制推送到远程分支 git push origin HEAD --force 但是,master 分支一般是受保护的分支,不可以强制推送,需要先取消保护,然后再推送,推送完之后,记得恢复保护. 下面的截图为如何解除保护: 原文地址:https://www.cnblogs.com/yuzhoushenqi/p/9559082.html

Github 代码回滚

今天代码出了问题,部署到网站上老是报错,说什么system.web.mvc.html 缺乏引用,天知道怎么回事儿,只好把以前的代码找出来:在要回滚代码的文件夹里面,右键==>update to revision ==> 选择对应的版本 即可. 概念: 假设我们有许多个版本,版本号分别是1-10 如果我们在7这里选择revert to this version那么7之后的8,9,10的操作都会被消除 如果在7选择revert changes from this version那么7版本的修改将会