如何将更改提交/推送到"live"分支,然后继续处理我的"test/dev"分支?



我对处理大型项目和使用任何形式的版本控制都很陌生,所以请耐心等待。

我有一个在本地/内部网网络服务器上运行的项目。我正在使用mercurial进行版本控制,并将hgworkbench/turtoisehg作为GUI。到目前为止,我只是简单地提交并将对存储库的更改推送到default分支中。

现在是时候首次将项目部署到实时服务器了。为了在实时服务器上运行,我必须对项目进行一些更改,主要是替换连接字符串、域名和链接/引用。更改所有这些后,我将这些更改提交到一个新的分支deployment。(另一个人将从那里负责实际部署。

一旦我将修改后的文件推送到 deployment 分支,我希望我的本地文件返回到 default 分支的最新版本并从那里继续工作(假设最后一个 ref# 是 42,推送到新分支是 ref# 43;所以我希望我的 lokal 系统的状态为 #42,然后 #44 应该是默认分支中 #42 的直接子级。

如何在不以某种方式破坏任何分支的情况下做到这一点?

查看当前分支:

hg branch

(在TortoiseHg Workbench中,您可以在顶部的"* Working Directory *"旁边看到当前分支。

将工作目录更新为default分支:

hg update default

(来自TortoiseHg,使用存储库 --> 更新...

现在,您已经处于default分支中,可以像以前一样提交更改。准备好进行其他部署后,可以将最新更改从default合并到deployment

hg update deployment
hg merge default
hg commit

(从 TortoiseHg,首先更新到目标分支,在这种情况下deployment。然后右键单击default分支的尖端并选择"与本地合并..."并且不要忘记在查看合并后提交合并。

最新更新