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) 回退a.py这个文件的版本到上一个版本

git reset HEAD^ a.py  
(3) 向前回退到第3个版本  
git reset –soft HEAD~3

(4) 将本地的状态回退到和远程的一样  
git reset –hard origin/master  
(5)
回退到某个版本  
git reset 057d  

(7)
回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit  
git revert HEAD

如果我们某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了

这种情况下,我们想把本地和远程仓库都回退到某个版本,该怎么做呢?

前面讲到的git reset只是在本地仓库中回退版本,而远程仓库的版本不会变化

这样,即时本地reset了,但如果再git pull,那么,远程仓库的内容又会和本地之前版本的内容进行merge

这并不是我们想要的东西,这时可以有2种办法来解决这个问题:

  1. 直接在远程server的仓库目录下,执行git reset –soft 10efa来回退。注意:在远程不能使用mixed或hard参数
  2. 在本地直接把远程的master分支给删除,然后再把reset后的分支内容给push上去,如下:

(1)新建old_master分支做备份  
            git branch old_master

(2)push到远程  
            git push origin old_master:old_master

(3)本地仓库回退到某个版本   
             git reset –hard
bae168   
        (4)删除远程的master分支   
             git push origin
:master   
        (5)重新创建master分支  
           git push origin master

在删除远程master分支时,可能会有问题,见下:

$ git push origin :master

error: By default, deleting the current branch is denied, because the next

error: ‘git clone‘ won‘t result in any file checked out, causing confusion.

error:

error: You can set ‘receive.denyDeleteCurrent‘ configuration variable to

error: ‘warn‘ or ‘ignore‘ in the remote repository to allow deleting the

error: current branch, with or without a warning message.

error:

t">error: To squelch this message, you can set it to ‘refuse‘.

error: refusing to delete the current branch: refs/heads/master

To [email protected]:gitosis_test

! [remote rejected] master (deletion of the current branch prohibited)

error: failed to push some refs to ‘[email protected]:gitosis_test‘

这时需要在远程仓库目录下,设置git的receive.denyDeleteCurrent参数

git receive.denyDeleteCurrent warn

然后,就可以删除远程的master分支了

虽然说有以上2种方法可以回退远程分支的版本,但这2种方式,都挺危险的,需要谨慎操作……

时间: 2024-08-01 13:54:52

Git 版本恢复命令 reset的相关文章

Git 版本恢复命令reset

reset命令有3中方式: git reset -mixed: 此为默认方式,不带任何参数的git reset, 使用这种方式,项目会回退到某个版本,只保留源码,回退commit和index的信息. git reset -soft: 回退到某个版本,只回退了commit的信息,不会恢复到index file 一级,如果还要提交,直接commit即可 git reset -hard: 彻底回退到某个版本,本地的源码也会变成上一个版本的内容 reset的示例 1 git reset HEAD^ //

Git版本控制软件结合GitHub从入门到精通常用命令学习手册

GIT 学习手册简介 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命令以及参数. 本手册将从入门到精通指导大家. 首先,我们要从如何以 Git 的思维方式管理源代码开始. 如何以 GIT 的方式思考(这里可以不用看懂,接着看下面的内容,看完就全懂了.) 懂得 Git,第一件重要的事情就是要知道它与 Subversion.Perforce 或者任何你用过的版本控制工具都有

(转) Git版本控制软件结合GitHub从入门到精通常用命令学习手册

转载自:爱分享 » Git版本控制软件结合GitHub从入门到精通常用命令学习手册 原文传送门: http://www.ihref.com/read-16369.html 注意: 学习前请先配置好Git客户端 相关文章:Git客户端图文详解如何安装配置GitHub操作流程攻略 官方中文手册:http://git-scm.com/book/zh GIT 学习手册简介 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目讲的,上篇主要是说用GUI来图形化界面操作,但是一般我们程序员也不会这么干,用命令又轻松又愉悦,所以,这里我就再开了一篇来专门说一下纯命令是怎么去操作的,但是要注意哦,其实廖雪峰老师的网站就是非常赞的学习资源哦! 廖雪峰老师:http://www.li

Git版本管理系统常用的使用命令

分支操作 1,列出所有本地分支git branch 2.列出所有远程分支git branch -r 3.列出所有本地分支和远程分支git branch -a 4.新建一个分支,但依然停留在当前分支git branch [branch-name] 例如,创建名称为dev的分支:git branch dev 5.新建一个分支,并切换到该分支git checkout -b [branch] 例如,创建名称为dev的分支并切换到该分支上git checkout -b dev 6.切换到指定分支,并更新工

git的常用命令

 git的常用命令 一.bash的简单命令 注意:首字母都是小写 1.Pwd 查看当前目录 2.Cd /e 切换到e盘 3.Cd 文件夹名称   切换到下一个目录 4.Cd ../ 返回上一级目录 5.Ls 查看当前目录的内容  (canvas/ 是文件夹) 6.Ls -a 查看所有文件 -a 是all的意思 7.Mkdir hello创建目录(文件夹)名为hello 8.Touch test.txt 创建文件test.txt 9.Cat 文件名 查看文件中的内容 10.Wc 文件名  统计文件

git(版本控制系统)的使用

git的简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 集中式版本控制系统(svn): 中间是中央服务器,其他所有电脑都需要从中checkout代码下来.只有中央服务器管理着各个版本的代码.其他电脑需要操作时都要和中央服务器交互.如果中央服务器离线或者故障,其他电脑就没法与中央服务器交互. 分布式版本控制系统(git): 分布式每一台电脑都有版本的Database,就不用担心中央服务器离线或者故障.因为本地就有版本的Database,所以可以实现离线操作

Git 版本管理工具命令速查

转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin [email protected]:ndshowgit push origin mast

git 版本历史

版本:git rev-parse --git-dir显示Git版本库的位置   --show-cdup显示当前工作区目录的深度  --parseopt解析命令行参数 $ git rev-parse --symbolic --branches 显示分支 $ git rev-parse --symbolic --tags 显示里程碑 $ git rev-parse --symbolic --glob=refs/* 显示定义的所有引用.其中refs/remotes/目录下的引用称为远程分支(或远程引用