git - 推送到 webroot 之上的托管项目

标签 git cakephp dreamhost

我在 DreamHost 上托管了一个 CakePHP 应用程序 - 并在我的 MacBook 上本地克隆了它。

我正在尝试设置我的环境,以便我可以在 MacBook 上进行开发并根据需要推送到托管站点 - 但不知道如何设置 git 来推送当远程文件位于 webroot 之上时,本地到远程。

如何设置本地 git 以推送到托管应用程序上 webroot 之上的文件?

谢谢!

最佳答案

but can't figure out how to set up git to push from local to remote when the remote files are above the webroot.

要设置存储库,您需要一个中间存储库作为引用点。现在,此存储库可能位于 githubbitbucket 等托管站点上,也可能是 bare repo在您的服务器本身上。 (注意 - bitbucket 为少数用户提供免费的私有(private)存储库)

bare repo的优势是您可以避免与在服务器、在线服务和您的开发计算机之间设置 ssh 机制相关的任何问题。缺点是,如果您的服务器出现故障,服务器上的所有代码都会丢失,尽管您的开发计算机上仍然有它的副本,因此并非所有代码都会丢失。

第 1 步

因此,让我们假设您继续使用裸存储库。如果您将使用 bitbucket/github,请忽略此步骤。

为此,我们需要在您的服务器上创建一个裸存储库,如下所示:

ssh user@myserver
cd /some/isolated/location
git init --bare intermediate_repo.git

这将创建一个路径为 /some/isolated/location/intermediate_repo.git 的中间存储库。

接下来,进入这个裸存储库,并运行以下命令,以便您可以通过 ssh 作为 git server 访问该存储库。

cd intermediate_repo.git
mv hooks/post-update.sample hooks/post-update
chmod a+x hooks/post-update
git update-server-info

现在您的存储库可以作为中间存储库,我们可以将其添加为 remote在其他存储库中。

第 2 步

现在在您的dev机器中,添加一个远程(第2步)

git remote add intermediate ssh://user@myserver:/some/isolated/location/intermediate_repo.git

第 3 步

并在您的服务器的存储库上添加一个远程

ssh user@myserver
cd /repo/location
git remote add intermediate /some/isolated/location/intermediate_repo.git

第 4 步

现在您可以开始了 ()。

您可以从您的开发机器推送代码,如下所示

git push intermediate branchname

并将其 pull 入您配置的代码存储库中

ssh -t user@myserver "cd /repo/location && git pull intermediate branchname"

PS

如果您选择进行 bitbucket 安装,请跳过步骤 1,并在上面的步骤 2 和 3 中,将 url/path 替换为 bitbucket ssh url 。查看this bitbucket link用于使用 bitbucket 设置 ssh 访问。另外,在生成 ssh key 时,请在不使用密码短语的情况下生成它们,否则您可能需要调试有关 ssh 和密码短语的更多内容。

您的 Views 文件夹应该位于 /repo/location/Views 位置可供您使用,您可以配置该文件夹以进行 Webroot 访问。

关于git - 推送到 webroot 之上的托管项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22651040/

相关文章:

css - cakePHP3 使用的是什么版本的 Foundation?

javascript - 在 Dreamhost VPS 上安装 Node.js

Git:删除除特定目录之外的所有内容(BFG Repo Cleaner)

git - 如何使github上传的文件chmod=+x?然后使用 wget 命令下载文件并在 github 模式下保留可执行集?

Git-Flow,为什么 "develop"分支在 "master"之后超出 "release finish"一步

cakephp Controller 的 jquery getJSON() 响应为空,但 200 成功

svn - 为什么 Git 比 Subversion 好?

php - CakePHP Unfilled 单选按钮在提交时更改为不需要的值

ubuntu - 在 Ubuntu 12.04.5 (Dreamhost VPS) 上安装 WKHTMLtoPDF 0.12.x 64 位

服务器上传后 JavaScript 不工作