设为首页 收藏本站
查看: 871|回复: 0

[经验分享] Git回滚远程版本

[复制链接]

尚未签到

发表于 2018-1-15 15:01:32 | 显示全部楼层 |阅读模式
  摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!
  “房子是租的 但生活不是”
1.故事的开始
  远程master分支下代码被不小心提交了很多垃圾代码或项目删掉,想要回滚到以前的某一版本并删除commit log。怎么办?情景如图:
DSC0000.png

  情景很简单。老板上传了个文件,我把他删掉了。有一种办法,把文件再push下,但是也不想他看到图中那comment(ps:这样我才不会被fire)。实现上面场景的代码如下:

  • vim A.txt
  • git add .
  • git commit -a -m "add A.txt"
  • git push
  • rm A.txt
  • git commit -a -m "我删除了老板的东西"
  • git push
  ————–分割线 ————–
  一头雾水的小白怎么办?怎么办?怎么办?
  push到远程的提交默认是不能修改的,但是一定要修改不是不行:

  • git push -f
2.解决之道
2.1工作区,暂存区,本地版本库 & 远程版本库
  No pic say 个 78。。。
DSC0001.png

  》》工作区:就是我们操作的目录
  》》暂存区:操作目录的快照
  》》本地版本库:Git的精髓,人人都是中央仓库。也就是Git分布式的好处,自然对比SVN这种集中式
  》》远程版本库:Github这种中央仓库,可以达到共享。
  常用的操作也如图所示,不言而喻了。
2.2 实战解决
  Talk is cheap,Show me the code or money~ 代码如下:

  • git log
  • git reset --soft ${commit-id}
  • git stash
  • git push -f
  详解如下:
  第1行:git log 查看提交历史,然后找到要回滚的版本。历史如下,

  • commit 84686b426c3a8a3d569ae56b6788278c10b27e5b
  • Author: JeffLi1993 <qiangqiangli1993@gmail.com>
  • Date:   Fri Apr 8 19:11:32 2016 +0800

  •    我删除了老板的东西

  • commit 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
  • Author: JeffLi1993 <qiangqiangli1993@gmail.com>
  • Date:   Fri Apr 8 19:05:23 2016 +0800

  •    add A.txt
  我们想要回滚到的版本就是:72bd6304c3c6e1cb7034114db1dd1b8376a6283a
  第2行:git reset –soft 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
  撤销到某个版本之前,之前的修改退回到暂存区(不懂看漂亮的图哦~)。soft 和 hard参数的区别就是,hard修改记录都没了,soft则会保留修改记录。
  第3行:暂存为了安全起见。
  第4行:git push -f
  将本地master push 到远程版本库中,-f 强制覆盖
3. 小结
  git reset 回滚到某个版本之前
  git push -f 强制push覆盖
欢迎点击我的博客及GitHub — 博客提供RSS订阅哦!

———- http://www.bysocket.com/ ————- https://github.com/JeffLi1993 ———-


微         博:BYSocket  豆         瓣:BYSocket >

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435352-1-1.html 上篇帖子: Git 图解剖析 下篇帖子: Git使用方法(一)[转]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表