码迷,mamicode.com
首页 > 其他好文 > 详细

git代码回滚

时间:2017-06-11 21:42:49      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:推荐   右击   har   ever   --   代码   his   image   img   

有时候我们用git提交代码后发生了错误,代码冲突了啊等等,我们需要将代码回到以前的某个版本

git代码回退有两种办法

一、git reset(推荐):

它是将最新的commit删除,用以前的某个版本的代码替代最新的代码,这里我们测试下

技术分享

 

 这里有很多的commit,我现在想将代码退回到第三个commit的时候,如果是用git命令,在项目的根目录就是有.git隐藏文件的目录,右击打开黑窗口

git reset --hard d83053a1a3ad6e169300b70a1f38b8b3d13d8576(这里是commit的标识)

执行完我们就回到了这个版本的代码,我们的本地代码,head什么的都改过来了,不过远程仓库的代码没有改过来,这个时候我们需要用

git push -f origin dev        //强行推送我们的代码,用我们现在的代码完全覆盖远程仓库的代码,正常推送会有冲突,这里不会有什么冲突的

如果我们用tortoise git(乌龟git)界面化git,我们右击项目点开show log

技术分享

 

 找到我们的某次提交,右击选择reset dev to this...,选择hard

技术分享

 

 确定后本地就已经改过来了,右击项目push代码,勾选unknown changes(就是强制推送代码的意思)

技术分享

 

远程仓库的也改过来了

技术分享

这里就会发现我们以前的commit不见了,我们想要恢复到的第三个commit上来了,成了最新的commit

二、git revert

 这种方法是在已有代码的基础上面,在做一次commit,不过这个commit是对某次commit的反向操作,如果我们做错了某次提交,我们可以再做一次反向的提交,就可以回到上一个版本的代码了

不过这个方式我不太喜欢,退回到上一个版本还好,如果想要退回到以前的某个版本很有可能就会冲突了,而且提交的时候也会比较麻烦,这里记录下:

现在我要把git的代码回退,revert操作用tortoise git(乌龟git)好像不太好用,点击revert经常上面都没有,这里就记录下用git命令怎么做:

在项目的根目录右击,打开黑窗口,输入:

git revert d83053a1a3ad6e169300b70a1f38b8b3d13d8576(最新的commit标识)

我们会发现来到了个黑窗口,我们需要在最下面输入提交的message,随便写些什么都可以

技术分享

 

写一些东西后,按ESC,然后同时按shift+;  ,输入wq,回车就可以了(这完全就是linux命令)

 这个时候我们本地的代码也已经改过来了,然后我们需要将代码提交到git远程仓库,我们先pull,再push(不用先commit了,这其实做的就是一次commit操作,不过做的是某个反向的commit功能),然后我们远程的代码也改过来了

技术分享

看下自己的代码吧,写完收工

git代码回滚

标签:推荐   右击   har   ever   --   代码   his   image   img   

原文地址:http://www.cnblogs.com/waterlufei/p/6986446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!