git版本回滚

先说今天遇到的问题,看到一个config.php的配置文件一直在修改的状态下,但是和远程的config.php是不一致的,我不需要提交它,但是看它在 modified的状态下,很不爽,想删除它,git   rm  config.php,然后git push了下,结果不仅把本地的config.php干掉了,把远程的config.php也给干掉了,,原来这个git
rm有这样的功效,而且我 删除的不只是这一个文件,还有n个文件。

想到要回滚到最近的一次提交。做这个工作前,提醒下,在本地直接把代码备份一份,要不之后的操作不当,会直接把你的这次修改全部抹杀掉,到时你哭都来不及;除非你对git有相对的把握,深知任何 一步操作的意义,了解git的 分支机制。

回滚分三步:

(1)备份你当前的代码 库一份,不是必须的操作,但是提醒要 做的,当然有可以用git branch backup 把当前的版本备份到一个新的分支

(2)git log找到要回滚的版本

(3)git reset --hard 要回滚到的版本号,比如 git reset --hard 91deaf(文件都回来了,包括config.php)

然后git status的时候,可能会提醒你 Your branch is behind ‘origin/master‘ by 2 commits 类似的错误,然后提醒你用git pull先下拉。如果你直接git push是推不了的,

因为远程已经是在你reset后的版本了,也就是说远程的版本比你reset的版本新,你是reset回滚到老版本的。

但是你git pull后(我用的是git fetch,之后再git merge合并),又会重新把远程的最新版本库覆盖掉本地的老版本,这样又回到了刚开始的问题。

如果 你在上述回滚三步之后,如果发现 有问题 ,重新切换到备份分支,也回到了刚开始的你本地的操作开始的版本,也就是reset回滚回来的文件又被删除了,比如config.php,这点很NB。其实备份分支也就是你当前最新状态的版本 ,reset后回到了老版本。

那么到底怎么解决问题呢?用了一个很笨的办法,但是目前没有找到好的方法。

git reset 后,git  push -f 强推,如果不带参数-f是推不了的。

推过之后,再把你这次修改的文件一个个加上去,git add ,git  commit ,git push 完毕。

思考:也许在用git  reset --soft会解决这个问题。

时间: 2024-08-04 14:12:32

git版本回滚的相关文章

#4.Git版本回滚

实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么.版本控制系统肯定有某个命令可以告诉我们历史记录, >1.在Git中,我们用git log命令查看: >2.如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数: 每提交一个新版本,实际上Git就会把它们自动串成一条时间线.如果使用可视化工具查看Git历史,就可以更清楚地看到提交历史的时间线. >3.如何回退到上一个版本或指定版本 Git必须知道当前版本是哪个版本

版本回滚

#查看log,获取版本号 git log #本地仓库回退到某个版本 git reset --hard baeertasdasdvf #新建需要回退的版本old_master分支做备份 git branch old_master #push到远程 git push origin old_master:old_master #本地仓库回退到某个版本 git reset --hard baeertasdasdvf #删除远程的master分支 git push origin :master #根据ol

TortoiseSVN 版本回滚

尝试用TortoiseSVN进行版本回滚,回滚到的版本和实际的内容有出入,可能是点了太多次给点乱了,囧~ 不过发现一个比较靠谱的方法,如下: 右键点击文件TortoiseSVN->showlog->右键点击要回滚的版本->save revision to 并覆盖文件路径,即可回滚到相应版本 另,附:这里点击总是和想要回滚的版本有出入,记录下,有时间再研究~ http://keenwon.com/1072.html http://my.oschina.net/u/232727/blog/1

svn 日志版本回滚

[[email protected] online]# svn diff -r 9:8 Index: index.html =================================================================== --- index.html (revision 9) +++ index.html (revision 8) @@ -10,4 +10,3 @@ kkkkkkkkkkk kkkkkkkk ggggggg -10 [[email prote

k8s核心资源对象& NameSpace(指定版本回滚)

k8s核心的资源对象: Pod:是运行以及调度的原子单位,也就是k8s中最小的资源单位,同一个pod可以同时运行多个container,多个container之间共享:(UTS(主机名和域名),IPC(消息队列和共享内存),NET(网络栈,端口等),namespace(名称空间)),但USR(用户和组),MNT(挂载点),PID(进行编号)是相互隔离的.pod有两种类型的pod:一类是由控制器控制的pod,一类是自主式pod(不受控制器管理,自己管理自己) Deployment:最常见的pod控

git远程库代码版本回滚方法

最近使用git时, 造成了远程库代码需要回滚到之前版本的情况,为了解决这个问题查看了很多资料. 问题产生原因: 提交了错误的版本到远程库. 以下是解决的方法, 供大家参考: 1.对本地代码库进行回滚 git log 查看提交历史,找出要回滚到的commit-id git reset --hard commit-id :回滚到commit-id git reset --hard HEAD~3:将最近3次的提交回滚 2.远程代码库回滚 进行这一步的时候遇到了困难,尝试了多种方法, 查看很多资料都提到

Git撤销&回滚操作

开发过程中,你肯定会遇到这样的场景: 场景一: 糟了,我刚把不想要的代码,commit到本地仓库中了,但是还没有做push操作! 场景二: 彻底完了,刚线上更新的代码出现问题了,需要还原这次提交的代码! 场景三: 刚才我发现之前的某次提交太愚蠢了,现在想要干掉它! 撤销 上述场景一,在未进行git push前的所有操作,都是在"本地仓库"中执行的.我们暂且将"本地仓库"的代码还原操作叫做"撤销"! 情况一:文件被修改了,但未执行git add操作

git代码回滚:Reset、Checkout、Revert的选择

代码回滚:Reset.Checkout.Revert的选择 Zhongyi Tong edited this page on Dec 8, 2015 · 5 revisions Pages 19 Home 2.1 快速指南 2.2 创建代码仓库 2.3 保存你的更改 2.4 检查仓库状态 2.5 检出之前的提交 2.6 回滚错误的修改 2.7 重写项目历史 3.2 保持同步 3.3 创建Pull Request 3.4 使用分支 3.5 常见工作流比较 4.1 图解Git命令 5.1 代码合并:

Gitlab至版本回滚

gitlab提交错误需要回滚版本 首先查看log找到需要回滚的head git log 回滚 git reset --hard 297ff2dcf20605297684f296a4b4ccaa1cf4dc48 强制提交 git push -f origin master 强制提交报错 [[email protected] hope-framework]# git push -f origin master Username for 'http://192.168.1.193': root Pas