GIT仓库如何恢复到前一次提交

 

通过使用Git版本恢复命令reset,可以回退版本。reset命令有3种方式:

  1. git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息  
  2. git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可  
  3. git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容   

    以下是一些reset的示例:

1 git reset HEAD^  #回退所有内容到上一个版本     
2 git reset HEAD^  a.py #回退a.py这个文件的版本到上一个版本     
3 git reset –soft  HEAD~3 #向前回退到第3个版本      
4 git reset –hard  origin/master #将本地的状态回退到和远程的一样
5 git reset 057d  #回退到某个版本      
6 git revert HEAD #回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit

   如果我们某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了,这种情况下,我们想把本地和远程仓库都回退到某个版本,该怎么做呢?前面讲到的git reset只是在本地仓库中回退版本,而远程仓库的版本不会变化,这样,即时本地reset了,但如果再git pull,那么,远程仓库的内容又会和本地之前版本的内容进行merge,这并不是我们想要的东西,这时可以有2种办法来解决这个问题:直接在远程server的仓库目录下,执行git reset –soft 10efa来回退。注意:在远程不能使用mixed或hard参数,在本地直接把远程的master分支给删除,然后再把reset后的分支内容给push上去,如下:   

git branch old_master    #新建old_master分支做备份       
git push origin old_master:old_master  #push到远程    
git reset –hard bae168  #本地仓库回退到某个版本 
git push origin :master  #删除远程的master分支
git push origin master  #重新创建master分支

关于git删除远程分支

一不小心把本地的临时分支push到server上去了,想要删除。一开始用:

git branch -r -d origin/branch-name

不成功,发现只是删除的本地对该远程分支的track,正确的方法应该是这样:

git push origin :branch-name

冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。

GIT仓库如何恢复到前一次提交的更多相关文章

  1. 从Git仓库中恢复已删除的分支、文件或丢失的commit

    亲测可用 因为自己 commit 并且 push 后 因为冲突 提交不了,不小心做了 rebase 代码被 覆盖 用以下命令 还原: 查看所有日志 并记下 hash 值 git reflog 然后用: ...

  2. git 签出(恢复)指定文件

    在项目开发中,偶尔会因为误删文件或其他原因需要从git仓库中恢复某些文件.此篇文章将介绍如何通过git从历史提交记录.分支记录恢复指定文件. 1. git checkout 说明:使用git chec ...

  3. Git命令实现本地文件推送到git仓库

    前提: ①确定本机(windows环境)已经安装git(https://git-scm.com/downloads) ②建立好远程Git仓库   1.在你想推送的文件夹下:右键→选择Git Bath ...

  4. 清理git仓库

    参考 https://harttle.land/2016/03/22/purge-large-files-in-gitrepo.html https://git-scm.com/docs/git-re ...

  5. 建立你的第一个 Git 仓库

    虽然 Git 确实是被许多重要软件选作版本控制工具,但是并不是仅能用于这些重要软件;它也能管理你购物清单(如果它们对你来说很重要的话,当然可以了!).你的配置文件.周报或日记.项目进展日志.甚至源代码 ...

  6. Git 系列(三):建立你的第一个 Git 仓库

    现在是时候学习怎样创建你自己的 Git 仓库了,还有怎样增加文件和完成提交. 在本系列前面的文章中,你已经学习了怎样作为一个最终用户与 Git 进行交互:你就像一个漫无目的的流浪者一样偶然发现了一个开 ...

  7. 批量修改git仓库地址脚本

    前言   公司的代码都存放在自己搭建的gitlab上面.之前由于老板升级gitlab.导致下面有个叫做"api"的groups无法访问.通过无所不能的谷歌才知道.在gitlab在某 ...

  8. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

  9. 本地Git仓库同步到Bitbucket 远程Git仓库

    转载自:http://blog.csdn.net/lue2009/article/details/46553829 本地仓库内容可以和多个远程仓库同步,本地仓库出问题或者远程仓库其中一个有问题,那么剩 ...

随机推荐

  1. Apigee 简介与简单试用

     Apigee (国内访问需要***)是一家成立于2004年的API管理公司,于2016年9月被Google收购,作为Google云的服务之一.Apigee提供从API设计.开发.管理.门户.网关等 ...

  2. maven创建helloword项目

    [root@666 maven_work]# mvn archetype:create -DgroupId=helloword -DartifactId=helloworld [INFO] Scann ...

  3. k8s官网 基础知识入门教程

    官网链接为 https://kubernetes.io/docs/tutorials/kubernetes-basics/ 基础操作环境为minikube 常见基础命令 查看基础的一些信息 # 查看版 ...

  4. 【iCore4 双核心板_uC/OS-II】例程四:软件定时器

    一.实验说明: 一些应用程序执行它们的任务时需要延迟一段特定的时间,因此uC/OS-II为我们提供了一些相应的 延时函数,本例程我们使用软件定时器定时500ms点亮相应的LED实现三色LED循环闪烁. ...

  5. IFRAME练习 各种调用

    parent.html. <html> <head> <script type="text/javascript"> function say( ...

  6. halcon 特征测量

    Features 1. line_orientation   功能:计算线的方位. 2. line_position   功能:计算一条线的重心.长度和方位. 3. partition_lines   ...

  7. ATR的计算

    TR=∣最高价-最低价∣和∣最高价-昨收∣和∣昨收-最低价∣的最大值 TR = max(high-low, abs(last-high), abs(last-low)) ATR = MA(TR, N) ...

  8. 深入理解Java类加载器(ClassLoader)

    深入理解Java类加载器(ClassLoader) Java学习记录--委派模型与类加载器 关于Java类加载双亲委派机制的思考(附一道面试题) 真正理解线程上下文类加载器(多案例分析) [jvm解析 ...

  9. Spring-Cloud-Config学习笔记(一):使用本地存储

    简介 Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持.使用Config Server,您可以为所有环境中的应用程序管理其外部属性.它非常适合spring应用,也可 ...

  10. oracle 聚合函数 LISTAGG ,将多行结果合并成一行

    LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name)  -- 将 Item_Cate ...