如何使用Mercurial正确更新Live服务器?

时间:2013-11-04 18:37:13

标签: version-control mercurial ftp

我是Mercurial和版本控制的新手,虽然我只是在处理个人PHP应用程序项目(直到我希望很快就能找到一份工作)但我很早就知道它是如何工作的。

我整天都在读Mercurial,但我仍然对一些元素感到困惑......

首先,我了解Mercurial CAN将我的文件直接推送到我的实时服务器,但是我没有看到很多教程或示例解释这是如何完成的,所以它让我觉得它不经常使用?我目前使用FTP来上传我的文件,而且很容易知道哪些文件已被修改,所以我想明确地消除它。

我也看到像BitBucket这样的服务被提到了很多,但是如果我要推送到BitBucket,那么如何将我的文件存入我的实时服务器?我是否只能通过FTP上传已更改的文件,或者我是否需要在我的服务器上安装Mercurial?或者

道歉,如果这是一个基本问题,我对公司将如何/应该如何使用这项服务,以及如何优雅地处理文件和上传,我只是有点迷失。我该如何对个人项目进行版本控制?

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点,但我会尝试将其缩小到使用BitBucket的场景中涉及的基本步骤:

1)在您的开发计算机和您的实时服务器上安装Mercurial。

2)在BitBucket中创建一个存储库。

3)使用BitBucket中显示的URL将存储库克隆到您的开发机器,例如:

hg clone https://your_user@bitbucket.org/your_account/your_repos .

4)以相同的方式将存储库克隆到您的实时服务器。

5)执行dev并将代码提交到dev机器上的本地存储库(使用hg commit)。然后使用hg push将更改集推送到BitBucket。

6)准备好将更改部署到实时服务器后,登录到实时服务器并运行hg pull -u

答案 1 :(得分:0)

我只是使用rsync上传所有内容。如果你自己工作,它很简单,工作正常。

我设置了SSL证书,然后制作了 bash快捷方式,p(目标目录):

,p() { rsync -avz --delete ./ "user@server.com:/var/www/html/$@/"; }

然后,在我的本地主机上,我可以输入,p images ,当前目录将上传到mysite / images。

如果您总是上传到同一个地方,可以一个没有参数的快捷方式

alias ,pm="rsync -avz --delete ./ "user@server.com:/var/www/html/";

最后,如果您只想输入命令

rsync -avz --delete ./ "user@server.com:/var/www/html/