如何将本地提交置于拉头之上

sas*_*ang 4 mercurial

如何让我的本地提交出现在最近拉头的顶部?

这是发生了什么:

1)我做了一些改变

2)在我的本地存储库中提交它们

3)从远程存储库中拉出(现在我有2个eads,其中一个是我的本地更改)

4)如何将我的本地更改放在另一个头上?我也想接受最近拉头的所有更改,以便它不要求我合并那些不属于我所做的本地更改集的文件.

Dai*_*rod 6

您可以使用RebaseExtension.

例:

hg rebase -b <your head revision> -d <latest pulled commit>

将所有更改的集合放在目标修订版之上,从指定的修订版本(以-b为单位)及其祖先,但不包括目标修订版本的共同祖先.

  • `rebase`对于创建线性树很方便,但处理它的*mercurial*方法是合并头.如果你有合并冲突,使用rebase,你的提交会解决分辨率问题,但是通过合并,你可以将解决方案分成自己的修订版. (4认同)
  • 这绝不是"必须做"的事情.有些人选择让他们的历史不准确,以使其看起来不是线性的,但它从来都不是必需的,而且往往不是一个好主意.如果你不喜欢在你的`hg log`输出中看到很多合并,只需使用`--no-merges`选项.以下是关于变基及其可行性的一个很好的引用:http://benjaminfleischer.com/2010/12/02/i-probably-shouldnt-argue-with-linus-torvalds/ (2认同)