git 如何让远程分支版本回退

描述问题

小喵收到需求要做产品A,之后提交commit A1, A2, A3并且同时同步到了远程分支origin master。生活总是辣眼睛的,开发到一定程度后因为一定的原因撤销需求A,要回退到版本到A,本地rest即可,但是如何把远程版本回退呢?

小喵在网络一顿搜索和尝试,请教同事之后有了这个解决方案

解决方案

  1. git reset操作:
$git pull origin master  // 更新到线上最新版本
$git log    // 查看日志,找到需要回退的commitID
-----
commit eddac1fca9e5d796904d5d884ae7eb91f636999e (HEAD -> master, origin/master, origin/dev, origin/HEAD, dev)
Author: 小喵
Date:   Tue Jul 21 20:46:19 2020 +0800
A3: I like eat.
*
* Here are many commits
*
commit 454bbc9ceb13666ebd9611dfdba4f3e7f5672019
Author: 小喵
Date:   Fri Jul 17 19:35:57 2020 +0800
A0: I like sleep
-----

$git reset 454bbc9  // 版本充值到HEAD:454bbc9
这里可能需要整理冲突
$git push origin master --force  //强制push到远端
  1. push 问题:这一步如论我怎么push使用各种push都不行,其中遇到这些报错信息:
1: 说我的分支和远端比较少了commit,预料范围内,需要force push
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

2:说我没有权限强制push code, 需要去掉保护分支
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To http://gitlab/project
  1. 添加用户权限,去掉保护分支
    |> 去项目目录 ,|> 左侧栏,settings点击 ,|> Repository , |>右侧目录栏找到 Protected Branches |> Expand


    p1595389397896.jpg
1595398963694.jpg

把Master(你要回退的分支) 放到Protect a branch 里面,选择可以操作的角色。
再次执行$git push origin master --force
完成回退了,小喵开开心!!!

  1. revert and reset
    Revert: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的
  • 使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交
  • 使用“git push”推上远程库:
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。