搁置或以其他方式保留 mercurial 中的更改

Shelving or otherwise preserving changes in mercurial

请帮助我理解 Hg mercurial 和 tortoise Hg。 我正在我的本地回购上处理一个更长的任务,有很多变化。
我还没准备好提交,但是中央回购已经有很多我需要得到的其他人的更改。 当我拉取时,我可以看到我的更改在修订版 25 的分支上,但是 public / 中央存储库已经在 27.
我想获得 27 日的所有内容,同时保留我正在处理的所有内容。 当我做 "Merge" 乌龟告诉我

我需要做shelve,但是不明白是什么
之后我如何将它们带回来? 现在 - 没有冲突。我的文件是分开的。当然,我知道我可以手动将它们备份到某个地方,合并分支然后将它们放回去。但是有一份日志要一一执行,而且我的组织也不鼓励这种行为。

我认为您在很大程度上对术语感到困惑。也许还有 Mercurial 的功能。

"Commit" - 记录您在源代码管理中的更改。不影响其他用户。

"Shelve" - 将工作目录中的任何更改记录到临时位置,从工作目录中删除所述更改。

作为一般规则,您应该经常提交。每当您有应该保留的工作并以您满意的方式完成时,就提交。它就像一种备份形式。

有关合并的消息是因为您的工作目录中有未提交的更改。它不想在没有得到您的意见的情况下打扰他们 - 这就是它提供给 "commit, shelve, or discard" 的原因。您应该先提交您需要的内容,然后再合并。

最后,一旦合并,您将需要 "push" 更改,其他人才能看到它们。


这并不是批评,但您在使用 Mercurial(或任何其他源代码控制系统,其中许多操作类似)的基本功能时遇到困难。您应该在测试存储库中寻找教程和练习,这不会对任何实际工作造成伤害。 HG 也有很好的文档。