gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 14:38:38 26 4
gpt4 key购买 nike

我在 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.

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

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

第一步

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

为此,我们需要在您的服务器上创建一个裸仓库:

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

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

接下来,cd 进入这个裸仓库,并运行以下命令,以便您可以通过 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

现在您的bare 仓库可以作为中间仓库使用,我们可以将其添加为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"

附言

如果您选择使用 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/

26 4 0
文章推荐: java - 跟踪对网页内容的更改
文章推荐: 仅在当前树中的所有分支的 Git 日志
文章推荐: html - jQuery 可以判断当前是否显示了