git 撤销commit
2016-04-26 13:36
162 查看
如果不小心commit了一个不需要commit的文件,可以对其进行撤销。
先使用
日志信息显示如下:
本次由于添加了错误的yii框架版本,因此需要将第二次的提交强制撤销。
找到需要回退的那次commit的 哈希值,
执行
使用上面的命令进行回退
上述命令执行成功之后,会彻底返回到回退到的版本状态,新发生的变更将会丢失。
对于部分发生了变更,但是变更部分的文件夹存在未提交的文件可能导致目录非空而删除失败,此时需要自行处置
完成之后,使用 –force 或 -f 参数强制push(本地分支和远程分支都是 develop)
如果你使用 TortiseGit 工具的话,它应该是不具备 reset 支持的,至少我没找到。所以 reset 操作只能在命令行模式下进行。
如果你工作在 SSH 的公钥模式下,命令行操作可能比较麻烦,我暂时不知道如何将公钥带进来提交,因为我的 gitolite服务不允许密码的,呵呵
查找了一些疑似文档,可能需要将自己的公钥添加到用户目录下的.ssh的认证文件中,未测试~~~
此时可以使用 TortiseGit 工具选择 push,并在弹出的窗口选择 force 的复选框,提交对应的分支或者全部提交,如下图:
先使用
1 | git log |
1 | WARNING: terminal is not fully functional |
2 | commit 197634d80f1aca2fefd4bb93ffb64bbf2af5bc1e |
3 | Author: /****hidden****/ |
4 | Date: Thu Jun 27 14:23:52 2013 +0800 |
5 |
6 | 新增PHP框架模块,此处采用 yii 框架 |
7 |
8 | commit f093b6ed512f761a346e2e5c0f00230e448c217c |
9 | Author: /****hidden****/ |
10 | Date: Thu Jun 27 14:05:23 2013 +0800 |
11 |
12 | 创建 master,以生成 HEAD 仓 |
找到需要回退的那次commit的 哈希值,
1 | f093b6ed512f761a346e2e5c0f00230e448c217c |
1 | git reset --hard f093b6ed512f761a346e2e5c0f00230e448c217c |
上述命令执行成功之后,会彻底返回到回退到的版本状态,新发生的变更将会丢失。
对于部分发生了变更,但是变更部分的文件夹存在未提交的文件可能导致目录非空而删除失败,此时需要自行处置
完成之后,使用 –force 或 -f 参数强制push(本地分支和远程分支都是 develop)
1 | git push develop develop --force |
如果你工作在 SSH 的公钥模式下,命令行操作可能比较麻烦,我暂时不知道如何将公钥带进来提交,因为我的 gitolite服务不允许密码的,呵呵
查找了一些疑似文档,可能需要将自己的公钥添加到用户目录下的.ssh的认证文件中,未测试~~~
此时可以使用 TortiseGit 工具选择 push,并在弹出的窗口选择 force 的复选框,提交对应的分支或者全部提交,如下图:
![](http://www.miss77.net/wp-content/uploads/2013/06/QQ%E6%88%AA%E5%9B%BE20130627163141.png)
相关文章推荐
- docker数据拷贝
- UNPv1第十九章:多播
- noty – jQuery通知插件
- 指针函数回调实例
- 监听ScrollView 的上下滑动
- 利用tesseract-ocr进行验证码识别
- 23-Longest Substring Without Repeating Characters
- ORACLE數據庫慢排除
- 深入理解HTTP Session
- C#基础知识四之override和new的区别
- django modeladmin override ModelForm
- 在Delphi中利用MSDASC来配置数据库链接
- object-c 单例模式的线程安全
- Piece of Cake
- 内容提供者ContentProvider的基本使用
- Lighttpd中CGI执行流程
- JavaScript日期集合(今日,昨日,本周一,周末 ,月初,月末)
- iOS 开发系列之在应用中添加TouchID 验证身份
- 手机APP界面-UI设计教程
- IIS服务器不能下载.apk文件的解决方略