什么是 mercurial 等同于 `git checkout -`?
What is the mercurial equivalent to `git checkout -`?
git checkout -
的 mercurial 等价物是什么?我想去我上次去过的地方。
我试过 hg checkout -
,但会产生解析错误。
没有。
Git这里的-
是shorthand for @{-1}
,指的是reflog for [=12] =].虽然 Git 的分支比其他任何东西都更像 Mercurial 的书签,但每次你 切换 分支时,Git 都会向 reflog 写一个条目说 切换前,当前分支为 。随后的 @{-<em>number</em>}
意味着 扫描这个特定的 reflog 寻找这样的条目,计数直到你命中数字 - th 这样的条目,并使用该分支名称作为此处的名称。为此,系统必须维护此 checkout
操作日志,并在提供新名称时存储旧名称。我在这里掩盖了 Git 所谓的 detached HEAD 模式:@{-<em>number</em>}
指的是两个名称 和 原始哈希 ID。 Mercurial 与 Git 的“分离 HEAD”模式完全不同:您总是在某个分支上。 Mercurial 分支是真实的、坚实的东西,不像 Git 的分支,它在留下提交的同时蒸发:在 Git 中,提交同时在 许多分支上 ,这在 Mercurial 中非常荒谬,但在 Git 中足够明智,删除一个分支只会带走允许 Git 找到提交的许多名称中的 一个 .
由于 Mercurial 不保留每个 hg update
的日志,因此无法从日志中检索以前的更新参数。 [编辑:有实验期刊扩展;请参阅 。] 您当然可以编写自己的运行 hg update
的小包装器,并且如果更新成功,则记录在更新之前正在使用的提交 and/or 分支。然后这个包装器可以实现“更新回来”操作。
旁注:hg topics
命令 is part of the evolve extension. This gives Mercurial the ability to do things Git just can't do. It's not the same as using Git branches at all. Mercurial without evolve can already do the same things Git can do, and a bit more (because Mercurial branchs are real). However, the permanance of branches, while attractive at first blush, is in my opinion often a net negative (by which I mean "you should use bookmarks first, and maybe only"). But the evolve extensions are are a feature sorely missing from both Mercurial and Git; they're available in Mercurial, but not part of the standard distributions and require extra user knowledge (see also the roadmap 及其链接)。
git checkout -
的 mercurial 等价物是什么?我想去我上次去过的地方。
我试过 hg checkout -
,但会产生解析错误。
没有。
Git这里的-
是shorthand for @{-1}
,指的是reflog for [=12] =].虽然 Git 的分支比其他任何东西都更像 Mercurial 的书签,但每次你 切换 分支时,Git 都会向 reflog 写一个条目说 切换前,当前分支为@{-<em>number</em>}
意味着 扫描这个特定的 reflog 寻找这样的条目,计数直到你命中数字 - th 这样的条目,并使用该分支名称作为此处的名称。为此,系统必须维护此 checkout
操作日志,并在提供新名称时存储旧名称。我在这里掩盖了 Git 所谓的 detached HEAD 模式:@{-<em>number</em>}
指的是两个名称 和 原始哈希 ID。 Mercurial 与 Git 的“分离 HEAD”模式完全不同:您总是在某个分支上。 Mercurial 分支是真实的、坚实的东西,不像 Git 的分支,它在留下提交的同时蒸发:在 Git 中,提交同时在 许多分支上 ,这在 Mercurial 中非常荒谬,但在 Git 中足够明智,删除一个分支只会带走允许 Git 找到提交的许多名称中的 一个 .
由于 Mercurial 不保留每个 hg update
的日志,因此无法从日志中检索以前的更新参数。 [编辑:有实验期刊扩展;请参阅 hg update
的小包装器,并且如果更新成功,则记录在更新之前正在使用的提交 and/or 分支。然后这个包装器可以实现“更新回来”操作。
旁注:hg topics
命令