我对处理大型项目和使用任何形式的版本控制都很陌生,所以请耐心等待。
我有一个在本地/内部网网络服务器上运行的项目。我正在使用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
分支的尖端并选择"与本地合并..."并且不要忘记在查看合并后提交合并。