gpt4 book ai didi

mercurial - hg pull --rebase中使用的rebase命令是什么

转载 作者:行者123 更新时间:2023-12-03 23:47:20 25 4
gpt4 key购买 nike

通常,在 HG 中,我的工作流程是专门使用:

hg pull --rebase

如果我想在两个命令中运行它,我会怎么做?
hg pull
hg rebase <probably with some options?>

最佳答案

什么hg pull --rebase确实是首先做一个hg pull然后 hg rebase在此之上带有默认参数(您可以在函数 rebase.py 中查看 Mercurial 分发中的 pullrebase() 中的代码),但前提是引入了任何新修订。如果不需要 rebase ,hg pull --rebase将改为更新到新的分支提示。所以,hg pull && hg rebase大致正确,但不能完全捕捉一些极端情况(没有新的修订,不需要 rebase )。

默认情况下,hg rebase将使用工作目录的父目录作为 rebase 的基本修订版,并将当前分支的最新修订版(即通常是您刚刚拉入的版本)作为目标。简而言之,相当于hg rebase -b . -d 'last(branch(.))' .

在这种情况下,“基本修订”是什么意思?这意味着 Mercurial 将去寻找基本修订和目标的最不共同的祖先。然后它将重新设置所有内容,但不包括目的地顶部的最不共同的祖先。即,指定基础修订版允许您在分支 [1] 上选择几乎任何您想要 rebase 的修订版,并让 Mercurial 确定哪些修订版属于该分支。

请注意,因为 rebase 是基于当前工作目录的父级,这意味着如果您当前的结帐不是您一直在处理的,那么 hg pull --rebase实际尝试 rebase 一个不同的分支可能会让你感到惊讶(它通常会失败,因为这些修订通常是公共(public)阶段的一部分,但如果你正在使用所谓的 non-publishing repositories 和不要使用命名分支)。

[1] 在此上下文中的分支是指匿名或拓扑分支,而不是命名分支。见 hg help glossary了解更多详情。

关于mercurial - hg pull --rebase中使用的rebase命令是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35327163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com