GIT仓库如何恢复到前一次提交
GIT仓库如何恢复到前一次提交
通过使用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^ #回退所有内容到上一个版本
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仓库如何恢复到前一次提交的更多相关文章
- 从Git仓库中恢复已删除的分支、文件或丢失的commit
亲测可用 因为自己 commit 并且 push 后 因为冲突 提交不了,不小心做了 rebase 代码被 覆盖 用以下命令 还原: 查看所有日志 并记下 hash 值 git reflog 然后用: ...
- git 签出(恢复)指定文件
在项目开发中,偶尔会因为误删文件或其他原因需要从git仓库中恢复某些文件.此篇文章将介绍如何通过git从历史提交记录.分支记录恢复指定文件. 1. git checkout 说明:使用git chec ...
- Git命令实现本地文件推送到git仓库
前提: ①确定本机(windows环境)已经安装git(https://git-scm.com/downloads) ②建立好远程Git仓库 1.在你想推送的文件夹下:右键→选择Git Bath ...
- 清理git仓库
参考 https://harttle.land/2016/03/22/purge-large-files-in-gitrepo.html https://git-scm.com/docs/git-re ...
- 建立你的第一个 Git 仓库
虽然 Git 确实是被许多重要软件选作版本控制工具,但是并不是仅能用于这些重要软件;它也能管理你购物清单(如果它们对你来说很重要的话,当然可以了!).你的配置文件.周报或日记.项目进展日志.甚至源代码 ...
- Git 系列(三):建立你的第一个 Git 仓库
现在是时候学习怎样创建你自己的 Git 仓库了,还有怎样增加文件和完成提交. 在本系列前面的文章中,你已经学习了怎样作为一个最终用户与 Git 进行交互:你就像一个漫无目的的流浪者一样偶然发现了一个开 ...
- 批量修改git仓库地址脚本
前言 公司的代码都存放在自己搭建的gitlab上面.之前由于老板升级gitlab.导致下面有个叫做"api"的groups无法访问.通过无所不能的谷歌才知道.在gitlab在某 ...
- git 学习记录—— git 中的仓库、文件状态、修改和提交操作等
最近开始学习使用版本控制工具 git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...
- 本地Git仓库同步到Bitbucket 远程Git仓库
转载自:http://blog.csdn.net/lue2009/article/details/46553829 本地仓库内容可以和多个远程仓库同步,本地仓库出问题或者远程仓库其中一个有问题,那么剩 ...
随机推荐
- 每天进步一点点——mysql——mysqlbinlog
一. 简单介绍 mysqlbinlog:用于查看server生成的二进制日志的工具. 二. 命令格式 mysqlbinlog 选项日志文件1 三. 经常使用參数 ...
- react学习笔记2之正确使用状态
//状态不要直接修改,比如: // 错的,这样写不会重新渲染组件 this.state.comment = 'Hello'; //修改状态正确的方式 this.setState({comment:'H ...
- 我的2018:OCR、实习和秋招
真的是光阴似箭,好像昨天还沉浸在考研成功的喜悦,今天却要即将步入2019年,即将硕士毕业.老规矩,还是在每一年的最后一天总结今年以及展望明年.回首2018,经历的东西特别多,视野也开阔了不少,可以说, ...
- Windows7系统不显示.gitignore文件名
从码云拉取项目后,发现Win7下不能显示.giignore文件名. 这是因为Win7系统默认隐藏了已知的拓展名,而.gitignore逗号前没有字符,于是显示的文件命是空白的. 打开工具—文件夹选项, ...
- 修改npm安装的全局路径和配置环境变量的坑
修改npm安装的全局路径和配置环境变量的坑 转自:http://www.qdfuns.com/notes/30749/0f66fcf5e62eed010f744d0d4adaa870.html 我之前 ...
- Vue之初识Vue
前言 如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维, 因为Vue.js是数据驱动的,你无需手动操作DOM.它通过一些特殊的HTML语法,将DOM和 数据 ...
- 81For全栈技术网
你想了解前端吗? 你想了解后端吗? 你想了解设计吗? 81For全栈技术这里包含了互联网所有内容,81For.com是全栈技术网,包括:前端.后端.全栈.jquery.vue.react.router ...
- undo与redo
http://www.cnblogs.com/HondaHsu/p/3724815.html
- flask多个app应用组合
由于之前写得接口太多了,分为了多个app,每个app里面有几个接口.部署次数需要很多次,修改成部署一次,在不改变代码的情况下,不使用蓝图,最快的方式就是这样修改. from werkzeug.wsgi ...
- iOS - 跳转到系统设置
一.跳转到自己应用设置(iOS8以上系统推荐使用) //跳转到自己应用干的设置配置页(如 定位.相机.相册 这些隐私配置) [[UIApplication sharedApplication] ope ...