撤消一个善变的变种

时间:2016-05-13 08:54:54

标签: mercurial rebase

我在我的本地存储库上做了一个rebase,但它出了问题。我怎么从它回来?

在rebase之前

@  225:c5eb9b47e19a Task #1 modified due to comment by peers
|
| o  224:7a1964c6b694 WIP on Task #2 depending on Task #1
| |
| o  223:eb5a2ce5ef36 Task #1 sent for peer review
|/
o  222:d18063b01959 Remote tip

不幸的变种

来自git世界,我习惯于改变事物。这可能是我的错误。

$ hg rebase -r224
merging some_file
3 files to edit
saved backup bundle to /path/to/repo/.hg/strip-backup/7a1964c6b694-backup.hg

在rebase之后

@  224:c5eb9b47e19a Task #1 modified due to comment by peers
|
| o  223:eb5a2ce5ef36 Task #1 sent for peer review
|/
o  222:d18063b01959 Remote tip
$ hg diff
# nothing
$ hg st -amdr
# nothing
$ hg update --clean 7a1964c6b694
abort: unknown revision '7a1964c6b694'!

我丢失了我的工作,作为 WIP在任务#2上提交,取决于任务#1 :它不在c5eb9b47e19a中(我必须在合并时搞砸了) ),原始提交消失了(是吗?)。

如何取消/还原我的rebase?

1 个答案:

答案 0 :(得分:1)

根据任务#1"获取"任务#2上的WIP;回

hg up 223
hg unbundle /path/to/repo/.hg/strip-backup/7a1964c6b694-backup.hg

取决于任务#1"

,与任务#2上的" WIP相反
hg revert --all -r 223
hg commit -m opposite of WIP on Task #2 depending on Task #1

根据任务#1和#34,在任务#2上应用" WIP的相反情况;撤消合并

hg update 224
hg rebase -r 225