警告:“虚拟合并”,原样@Martin_Geisler 推荐 https://stackoverflow.com/a/1079497/3195477,如果稍后您想要对两个分支进行真正的合并,真的会把您搞砸。虚拟合并将被记录,并说您合并到您进行虚拟合并的分支 - 您将看不到更改。或者,如果您合并到另一个分支,则该另一个分支上的更改将被撤消。
如果您只想将整个文件从一个分支复制到另一个分支,您可以简单地执行以下操作:
hg update -r to-branch
hg revert -r from-branch file
hg ci -m 'copied single file from from-branch to to-branch
如果您想选择该文件的不同部分,那么"hg record"
很有用。
我刚刚在我的主目录 .hgignore 上执行了此操作。
如果两个分支都对您想要保留的文件进行了更改,则一个肮脏的技巧是使用 hg merge 创建两个分支的合并,可能/可能在另一个分支上,签入,然后复制单个文件合并和分支之间:
hg update -r to-branch
branch merge-branch
hg merge -r from-branch
hg ci -m 'temp merge to be discarded"
hg update -r to-branch
hg revert -r merge-branch single-file
hg ci -m 'merged single-file from from-branch to to-branch"
hg strip merge-branch
值得一提的是:“在分支之间复制单个文件”(或修订版,或从修订版到合并,或......)的方式是“hg revert”。 IE。
hg update -r Where-you-want-to-copy-to
hg revert -r Where-you-want-to-copy-from file-you-want-to-copy
...
hg ci
出于某种原因,我和我的一些同事发现这个VERY令人困惑。 "revert"=="copy" ...对于某些使用模式有意义,但并非全部。