• git 版本库回滚(转载)


    From:http://www.cnblogs.com/qualitysong/archive/2012/11/27/2791486.html

    From: http://www.tech126.com/git-reset/

    git 版本库回滚:指将版本库某分支回退到之前的某次提交:commit-id

    一、本地版本库回滚

    git reset --hard commit-id    //回滚到之前的commit-id,将commit-id之后的提交删除
    
    git reset --hard HEAD~3    //将最近3次提交回滚

    二、远程版本库回滚

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

    原理:先将本地分支回退到某次commit,再删除远程分支,最后重新push本地分支到远程版本库。

    操作步骤:

    1、git checkout develop    //develop为要重置的分支名
    
    2、git pull
    
    3、git branch develop-backup  //备份本地分支
    
    4、git reset --hard commit_id   //重置本地分支到某次提交
    
    5、git push origin :develop    //删除远程develop分支
    
    6、git push origin develop    //将重置后的本地分支推送到远程版本库,在远程版本库新建develop分支
    
    7、git push origin  :develop-backup  //删除备份的分支

    注意事项

    如果使用了gerrit作为远程代码中心库和code review平台,需要确保操作git的用户具备分支的push权限,并选择了Force Push选项。

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

    参考文档:https://review.typo3.org/Documentation/access-control.html#category_push

    ==========================

    reset命令的三种用法:

    1、git reset --mixed

      此为默认方式,不带任何参数,回退到某个版本,只保留源码,回退commit和index信息。

    2、git rest --soft:

      回退到某个版本,只回退commit信息,不恢复index file。如果要重新提交,执行commit即可。

    3、git reset --hard

      彻底回退到某个版本,本地源码与将与回退的版本保持一致。

    如果修改某些内容,并push到远程版本库,此时,执行git reset,只会将本地版本库进行版本回退,远程版本库不会发生变化。

    当执行git pull后,远程版本库的内容将再次与本地版本库merge。

    此时,有以下方法可实现远程版本库回退:

    1、直接在远程版本库目录下,执行 git reset --soft commit-id. 注意:在远程版本库不能使用mixed或hard参数。

    2、在本地删除远程分支,然后reset到指定commit-id,再push本地分支到远程。

    3、执行 git reset --hard commit-id,然后push: git push origin branch-name -f

    第三种方法参考资料:http://zhuqingcode.github.io/git/2014/05/15/github-a-bug-commit.html

  • 相关阅读:
    Java并发编程:synchronized
    对一致性Hash算法,Java代码实现的深入研究
    在Xcode中使用Git进行源码版本控制
    这些 Git 技能够你用一年了
    简明 Git 命令速查表
    Git 分支管理是一门艺术
    2016年Web前端面试题目汇总
    iOS 面试基础题目
    Json数据交互格式介绍和比较
    SpringBoot端口和访问路径
  • 原文地址:https://www.cnblogs.com/xiaoerlang/p/4220974.html
Copyright © 2020-2023  润新知