Git:让服务器git repo'push'到/ public_html

时间:2014-07-28 18:03:14

标签: git git-remote

我正在学习如何设置新的git repo。我刚刚在已设置的传递中使用了git repos。

目标: 我试图弄清楚设置过程如何运作。我有它所以我的本地可以成功推送到我的远程git仓库。我想要远程git repo'推送'到我的实时网站现在的位置,但只有一个特定的文件夹。这可能吗?

我的git repo文件设置: /.git / trunk(我的站点文件所在的位置,我想将其推送到服务器上的/ pubic_html文件中) / resources(只是psd&s;等等,我不想在服务器上的/ public_html文件中使用它) / db-backups(只是数据库备份,我不想在服务器上的/ public_html文件中使用这些备份)

我会登录我的远程网络服务器,点击~/public_html/然后运行' get pull'并从我的仓库更新我的所有网站文件/文件夹。 (希望这很有意义)

我目前的设置如下:


我的本​​地git配置文件:

[remote "origin"]
    fetch = +refs/heads/*:ref/remotes/origin/*
    url = ssh://mygituser@website.com/~/opt/git/mywebsiterepo.git

我的远程git配置文件:

[remote "origin"]
   fetch = +refs/heads/*:ref/remotes/origin/*

位置:~/opt/git/myrepo.git(我在那里运行git init --bare --shared


我的远程网站git配置文件:

[remote "origin"]
        fetch = +refs/heads/*:ref/remotes/origin/*
        url = ~/opt/git/mywebsiterepo.git

地点:~/public_html

更新

我只是想到一种方法,我需要正确地执行此操作,让我的git /trunk文件夹成为唯一的内容'在我的{{ 1}}我的实时网站的文件夹。

  • 删除了/public_html
  • 中我的仓库的旧git克隆
  • 为新文件夹~/public_html
  • 创建了一个新的git克隆
  • 创建了符号链接~/git/myrepo/

所以现在我的public_html -> /home/mywebsite/git/myrepo/trunk文件夹包含我的所有网站文件是我生命中唯一的事情/trunk:)

1 个答案:

答案 0 :(得分:3)

您必须设置一个hook,自动为您拉动:

 cd ~/opt/git/myrepo.git/hooks

然后创建一个名为post-receive的文件,并在其中添加一些文件:

#!/bin/sh
git --work-tree=$HOME/public_html --git-dir=$HOME/opt/git/myrepo.git/ pull

然后chmod +x post-receive

如果您想了解更多详情,请发送一篇冗长的文章@ https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps