git远程库代码版本回滚方法

最近使用git时, 造成了远程库代码需要回滚到之前版本的情况,为了解决这个问题查看了很多资料。

问题产生原因: 提交了错误的版本到远程库。

以下是解决的方法, 供大家参考:

1.对本地代码库进行回滚

git log 查看提交历史,找出要回滚到的commit-id
git reset --hard commit-id :回滚到commit-id
git reset --hard HEAD~3:将最近3次的提交回滚

2.远程代码库回滚

进行这一步的时候遇到了困难,尝试了多种方法, 查看很多资料都提到使用git push -f 进行强推, 来覆盖远程仓库代码, 但是公司使用了gerrit代码审查软件, 会对代码审查后然后再手动去合入, 导致这个方法失效了。

最终采用了如下方法

git checkout the_branch  切换分支

git pull

git branch the_branch_backup   备份一下这个分支当前的情况

git reset --hard the_commit_id   把the_branch本地回滚到the_commit_id

git push origin :the_branch   删除远程 the_branch

git push origin the_branch //用回滚后的本地分支重新建立远程分支

git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支

由于使用了gerrit,gerrit中心库是个bare库,将HEAD默认指向了master,因此master分支是不能进行删除操作的,所以在操作过程中创建了一个新的分支,把回滚后的代码提交到新建的分支上, 再合入到master分支上,这样远程库的代码回滚就完成了。

如有问题,欢迎交流。

时间: 2024-10-05 20:36:27

git远程库代码版本回滚方法的相关文章

版本回滚

#查看log,获取版本号 git log #本地仓库回退到某个版本 git reset --hard baeertasdasdvf #新建需要回退的版本old_master分支做备份 git branch old_master #push到远程 git push origin old_master:old_master #本地仓库回退到某个版本 git reset --hard baeertasdasdvf #删除远程的master分支 git push origin :master #根据ol

git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚

[git 删除本地分支] git branch -D br [git 删除远程分支] git push origin :br  (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id [本地代码库回滚]: git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除 git reset --hard HEAD~3:将最近3次的提交回滚 [远程代码库回滚]: 这个是重点要说的内容

git版本回滚

先说今天遇到的问题,看到一个config.php的配置文件一直在修改的状态下,但是和远程的config.php是不一致的,我不需要提交它,但是看它在 modified的状态下,很不爽,想删除它,git   rm  config.php,然后git push了下,结果不仅把本地的config.php干掉了,把远程的config.php也给干掉了,,原来这个git rm有这样的功效,而且我 删除的不只是这一个文件,还有n个文件. 想到要回滚到最近的一次提交.做这个工作前,提醒下,在本地直接把代码备份

上线代码、回滚代码

上线脚本 #!/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

TortoiseSVN 版本回滚

尝试用TortoiseSVN进行版本回滚,回滚到的版本和实际的内容有出入,可能是点了太多次给点乱了,囧~ 不过发现一个比较靠谱的方法,如下: 右键点击文件TortoiseSVN->showlog->右键点击要回滚的版本->save revision to 并覆盖文件路径,即可回滚到相应版本 另,附:这里点击总是和想要回滚的版本有出入,记录下,有时间再研究~ http://keenwon.com/1072.html http://my.oschina.net/u/232727/blog/1

k8s核心资源对象& NameSpace(指定版本回滚)

k8s核心的资源对象: Pod:是运行以及调度的原子单位,也就是k8s中最小的资源单位,同一个pod可以同时运行多个container,多个container之间共享:(UTS(主机名和域名),IPC(消息队列和共享内存),NET(网络栈,端口等),namespace(名称空间)),但USR(用户和组),MNT(挂载点),PID(进行编号)是相互隔离的.pod有两种类型的pod:一类是由控制器控制的pod,一类是自主式pod(不受控制器管理,自己管理自己) Deployment:最常见的pod控

svn 日志版本回滚

[[email protected] online]# svn diff -r 9:8 Index: index.html =================================================================== --- index.html (revision 9) +++ index.html (revision 8) @@ -10,4 +10,3 @@ kkkkkkkkkkk kkkkkkkk ggggggg -10 [[email prote

#4.Git版本回滚

实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么.版本控制系统肯定有某个命令可以告诉我们历史记录, >1.在Git中,我们用git log命令查看: >2.如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数: 每提交一个新版本,实际上Git就会把它们自动串成一条时间线.如果使用可视化工具查看Git历史,就可以更清楚地看到提交历史的时间线. >3.如何回退到上一个版本或指定版本 Git必须知道当前版本是哪个版本

git远程分支代码拉取

1.远程拉取gitlab 工程分支,并在本地建立分支 具体过程 新建一个空文件 初始化 git init 自己要与origin master建立连接(下划线远程仓库链接)git remote add origin http://192.168.9.10:8888/root/game-of-life.git 把远程分支拉到本地(game-of-live-first_branch为远程仓库的分支名)git fetch origin game-of-live-first_branch 在本地创建分支g