Git 命令 四 git代码库回滚

git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id

【本地代码库回滚】:

git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除

git reset --hard HEAD~3:将最近3次的提交回滚

【远程代码库回滚】:

这个是重点要说的内容,过程比本地回滚要复杂

应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布

原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支

操作步骤:

1、git checkout the_branch

2、git pull

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

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

5、git push origin :the_branch //删除远程 the_branch

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

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

如果使用了gerrit做远程代码中心库和code review平台,需要确保操作git的用户具备分支的push权限,并且选择了 Force Push选项(在push权限设置里有这个选项)

另外,gerrit中心库是个bare库,将HEAD默认指向了master,因此master分支是不能进行删除操作的,最好不要选择删除master分支的策略,换用其他分支。如果一定要这样做,可以考虑到gerrit服务器上修改HEAD指针。

【转】

时间: 2024-12-16 16:41:35

Git 命令 四 git代码库回滚的相关文章

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次的提交回滚 [远程代码库回滚]: 这个是重点要说的内容

gitf远程代码库回滚(webstorm下)

git远程代码库回滚(webstorm下) 1. 场景 添加了一个文件[file-for-test.js]到git的控制下 进行了三次修改,并分别进行了三次commit,最后进行了一次push git log结果如下图: [file-for-test.js]文件的内容如下图: 现在希望,将远程代码库下的[file-for-test.js]文件回滚到[//lyn test1]的版本 2. 操作步骤 2.1. [Version Control]——[Log] 2.2. 右击[//lyn test1]

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

最近使用git时, 造成了远程库代码需要回滚到之前版本的情况,为了解决这个问题查看了很多资料. 问题产生原因: 提交了错误的版本到远程库. 以下是解决的方法, 供大家参考: 1.对本地代码库进行回滚 git log 查看提交历史,找出要回滚到的commit-id git reset --hard commit-id :回滚到commit-id git reset --hard HEAD~3:将最近3次的提交回滚 2.远程代码库回滚 进行这一步的时候遇到了困难,尝试了多种方法, 查看很多资料都提到

GIT版本库回滚【图文版】

金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉.版本管理要贯彻到日常的开发学习中去.SVN转GIT用户.金天微信:15998603918 欢迎找我聊聊天. git 版本库回滚,在实际开发过程中总会遇得到 1. 先找出需要回滚的commitid git log -3 2. 重置本地版本库到指定commitid, 注意:本地改动将丢失 git reset --hard b034c3fe4e5823f71990e153d8a52b9ac871b5b7 3.

git无法clone远程代码库及git代理设置

git作为一个版本管理神器,日常工作中自然也就少不了了:特别是Android开发,github和google是逃不过的了.然而很多时候需要用到git克隆远程的代码库,众所周知的原因google.android官网都是无法访问的.那么我们怎么克隆诸如:android.googlesource.com下的库呢? 工具:git.vpn代理 实例:git clone https://android.googlesource.com/platform/frameworks/volley/ D:\Andro

GIT命令行统计代码提交行数

项目中遇到写报告的时候要反馈某个人或者某个功能的代码量,又没有集成CI这些插件,可以简单的用GIT命令统计下代码提交量: --统计某个人的提交代码 git log --author="oldwang" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,lo

git命令之git tag 给当前分支打标签

git命令之git tag 给当前分支打标签 标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签 $ git tag -l 'v0.1.*' # 搜索符合模式的标签 打标签 git标签分为两种类型:轻量标签和附注标签.轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象.建议使用附注标签. # 创建轻量标签 $ git tag v0.1.2-light # 创建附注标签 $ git tag -a v0.1.2 -m

每日一条 Git 命令:git merge remote master

每日一条 Git 命令:git merge remote master 当远程的分支更新后,需要将自己的代码与远程的分支合并就用以下这个命令合并. git merge remote master 如果这个项目是 fork 过来的,这个 remote 可以改成 原项目的项目名,当合并时会比较直观点. 原文地址:https://www.cnblogs.com/F4NNIU/p/9877753.html

Git命令提交项目代码

Git客户端安装 今天就结合`GitHub`,通过`Git`命令,来了解如何实现开源代码库以及版本控制 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管所以我们需要下载一个Git客户端软件,用来执行各种指令 Git下载地址https://git-scm.com/ 下载完毕后,配置`path`环境变量,`E:\develop\git\Git\bin`(我本机的在E盘下) 在`doc`命令行窗口输入`git`命令,如果出现如下的信息,说明安装成功,