有时候 commit 后才意识到还未 pull,这个时候会有如下提示:

wlan-0-182:mobile-v2 lixiumei$ hg pull -u
pulling from ssh://hg@bitbucket.org/ifanr/socialbase
searching for changes
adding changesets
adding manifests
adding file changes
added 74 changesets with 193 changes to 155 files (+3 heads)
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
updated to "70b155edd91c: 1. 移动端增加获取插件详情接口;2. 更新 iconfont; 3. utils 增加时间格式处理和跳转至注册页的方法"
1 other heads for branch "feature/trochili-plugin-market-v1.0"

hg heads:

wlan-0-182:mobile-v2 lixiumei$ hg heads
changeset: 34748:a0daa4aa2008
branch: feature/hydrogen-menu-iterative
tag: tip
parent: 34741:665610d5fb59
user: Zeshuan Zhang <zhangzeshuan@ifanr.com>
date: Sat Apr 28 13:39:49 2018 +0800
summary: BAAS-2052 #comment 修复 HDevSidebar 子菜单折叠 bug

想要达到的效果:撤销刚才的 commit,并且保持本地更改不变,commit 的文件回退到 commit 前的状态(也就是说,所有的更改不会丢失)

方法:

第一步:hg out/outgoing(查看打算撤销的 commit 的 changeset)

wlan-0-182:mobile-v2 lixiumei$ hg outgoing
comparing with ssh://hg@bitbucket.org/ifanr/socialbase
searching for changes
changeset: 34749:70b155edd91c
branch: feature/trochili-plugin-market-v1.0
tag: tip
parent: 34726:06d8ccdad119
user: lixiumei <lixiumei@ifanr.com>
date: Thu May 03 11:17:27 2018 +0800
summary: 1. 移动端增加获取插件详情接口;2. 更新 iconfont; 3. utils 增加时间格式处理和跳转
至注册页的方法

第二步:hg strip --keep -r <changeset>

如果 hg 提示:hg: unknown command 'strip'

那么,进入 .hg 目录,目录下有文件 hgrc,执行 vi hgrc, 在 [extensions] 下添加 strip = ,保存退出即可。(或者使用编辑器修改 hgrc):

再次执行 strip

wlan-0-182:mobile-v2 lixiumei$ hg strip --keep -r 34749
saved backup bundle to /Users/huanghao/sso/.hg/strip-backup/70b155edd91c-e339a7d0-backup.hg

使用 hg outgoing 查看撤销是否成功

wlan-0-182:mobile-v2 lixiumei$ hg outgoing
comparing with ssh://hg@bitbucket.org/ifanr/socialbase
searching for changes
no changes found

撤销成功!

hg (Mercurial)multiple heads (hg 多头)、撤销 commit,并保留修改的更多相关文章

  1. Git撤销commit消息保留修改

    有时候commit后发现commit信息错了或者是添加了不想commit的内容,但还没有push到远程仓库 这个时候 git reset --soft [commit_id] 就可以回滚到某一个com ...

  2. hg(Mercurial)使用参考

    hg(Mercurial)使用参考   使用hg(mercurial)有好几个月了,个人感觉这款分布式的版本控制系统非常不错,易学,易用:你可以从做在你旁边的同事拉取完整的代码; 对网络的依赖性更低, ...

  3. 袭击Mercurial SCM(HG)

    这个叫水银的源代码管理工具尽管默默无闻,但还是得到了非常多团队的使用. 为了迎合某些团队的须要,我们也要用它来管理我们的代码. 今天的任务是先袭击学习.磨刀不误砍柴工. 对工具的掌握越快.工作的效率就 ...

  4. git撤销commit 并保存之前的修改

    撤销并保留修改 参数 –soft  # 先进行commit ,之后后悔啦  $ git commit -am "对首篇报告研究员字段改为author_name" 执行git log ...

  5. [转]git commit之后,想撤销commit

    本文转自:http://www.cnblogs.com/lfxiao/p/9378763.html 写完代码后,我们一般这样 git add . //添加所有文件 git commit -m &quo ...

  6. git commit之后,想撤销commit

    原文 写完代码后,我们一般这样 git add . //添加所有文件 git commit -m "本功能全部完成" 执行完commit后,想撤回commit,怎么办? 这样凉拌: ...

  7. git使用情景2:commit之后,想撤销commit

    ================实际操作============================== 提交到git上撤回 git reset head^1 提交到本地 撤回 git reset --s ...

  8. git commit 之后,撤销commit操作

    撤销.修改commit 写代码过程中,如果已经git add [files] git -m commit [files],没有push代码到远程仓库,想撤销commit,可以根据实际情况,使用以下参数 ...

  9. git commit之后,撤销 commit

    写完代码后,我们一般这样 git add . //添加所有文件 git commit -m "本功能全部完成" 执行完commit后,想撤回commit,怎么办? 可以执行如下命令 ...

随机推荐

  1. mbstowcs 和ifstream 前为何要setlocale

    最近看公司的一些代码,发现一些地方调用了std::locale::global(locale("")); (c++) 和 setlocale(LC_ALL, "" ...

  2. linux修改默认语言

    echo $PATH #查看当前语言LANG=en_US.UTF-8 #临时修改当前语言,修改为英文echo 'LANG=en_US.UTF-8' > /etc/sysconfig/i18n # ...

  3. 关于查询中查询无果,也不报错,inpout标签中的value属性为‘ ’的判断问题

    首先当我们标签中vlue属性可能为' '时,我们一定要在后端进行判断过滤,不然查询会什么都查不出来的,遇到的问题如下 例子如下: 这是一个easyui 中的下拉选,效果如下 当我们默认查询全部时,后台 ...

  4. 为什么想起开通blog?

    为什么想起开通博客 2016年跨年夜写年终总结时,曾对自己许下愿,要成为一个会讲“故事”的人,无奈口才不行,写字也不好看,所以只能在电脑上码码字代替了. 在我看来,这“故事”该有许多种含义:首先,电子 ...

  5. TabLayout下划线指示器自适应文字宽度

    解决方案1: 更新design库到28.0.0-rc01 implementation 'com.android.support:design:28.0.0-rc01' 然后在TabLayout里设置 ...

  6. Spring 基于构造函数的依赖注入

    基于构造函数依赖注入 sprig通过bean创建对象时,会通过bean提供的参数来选择调用某个构造函数.上例中, <constructor-arg ref="spellChecker& ...

  7. echarts 折线图点击高亮

    echarts中注册事件很多 ,记录下今天做的折线图点击高亮: 查了api,看了半天,发现折线图点击时只能做到圆点变大,并不能实现点击线条,整条线条高亮,也真是醉了. 上图: 如图所示,只能圆点变大. ...

  8. jsonModel使用

    流弊的JSON数据模型框架 https://github.com/jsonmodel/jsonmodel 版本 1.3.0 如果你喜欢JSONModel,并且使用了它,请你: star一下 给我一些反 ...

  9. DateGridView控件与mysql交互

    private void dgv() { //Ip+端口+数据库名+用户名+密码 string connectStr = "server=127.0.0.1;port=3306;databa ...

  10. [Java Web学习]Spring MVC使用普通类对象,声明的对象为null

    由于对Spring还不熟悉,目前还处于学习阶段,因此经常会遇到一些小白问题,这个问题需要在Spring文件中将普通对象注入bean,然后在MVC中添加set方法,填充普通对象.