zoukankan      html  css  js  c++  java
  • GIT仓库如何恢复到前一次提交

    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上,相当于删除该分支。

  • 相关阅读:
    mysql复制那点事
    全排列问题
    56. Merge Interval
    2. Add Two Numbers
    20. Valid Parentheses
    121. Best Time to Buy and Sell Stock
    120. Triangle
    96. Unique Binary Search Trees
    91. Decode Ways
    72. Edit Distance
  • 原文地址:https://www.cnblogs.com/MisterZZL/p/9758026.html
Copyright © 2011-2022 走看看