git-reset

工作中出现如下的问题:
一次上线之前将可以上线的分支A合并到了master中,并将合并以后的分支推送到了远程分支中去,后续上线以后的测试操作中,发现新上线的功能不完善,需要重新下线重新操作。而此时代码已经共享,但还好没有其他工作伙伴从最新的master分支中拉取代码进行研发,此时需要进行的是代码的回滚操作,且需要的是后续还有进行之前分支A合并到新的master中。

网上查询资源发现 git-reset 可以实现上述的功能。

This form resets the current branch head to <commit> and possibly updates the index (resetting it to the tree of <commit>) and the working tree depending on <mode>. If <mode> is omitted, defaults to  "--mixed".

如下是操作的详细记录:

先使用git reset 将当前的代码回滚到某一个操作。

git reset --hard c8c72b78f7f81ed6c7877dc3049963f206f89a12

然后强制推送到远程分支中

git push -f origin master

remark:此时发现,由于此种操作的权限需要的是master的操作,但在gitlab的环境下发现,已经授权master操作的,依旧没办法将代码强制推送,这时候去查看intellij IDEA的操作环境中的protected的分支,也是设置的可以force push的,依旧无法推送,最后进入到gitlab的后台中,将当前的受保护的分支master设置为unprotected,然后重新进行代码推送,这时候发现代码成功的推送了上去。

注意
使用git-set的操作命令,会将操作的历史记录信息进行清空,就好像没有操作过一样,所以这样的操作方式,我们需要慎重的去对待!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GIT分布式版本控制系统最佳实践 这篇文章来自于老男孩教育高级架构师班12期的徐亮偉同学。 首先感谢老男孩架构师班...
    meng_philip123阅读 3,476评论 4 36
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,600评论 1 26
  • 单身上路吧,在旅途中遇到一个怦然心动的瞬间,也许那个不经意就是一生,快到这些地方来场艳遇约会吧! 乌镇,这里的故事...
    筱飞不会飞阅读 343评论 0 0
  • 一个小孩爱游戏,一,进入游戏,有相对独立的人格,自由度,社交圈,任务的选择,绝不会叫你唯唯诺诺,只能做题,二,自我...
    晚霞消失之时阅读 250评论 0 0
  • 再惜项羽 力拔山河半世戎,鸿门一错未擒公。 楚歌四面悲垓下,乌马嘶鸣不渡东。 注释:七绝,仄起押首句平水韵 原作为...
    BRS阅读 375评论 2 1