将git与具有用户上传的网站一起使用

时间:2016-05-17 13:25:43

标签: php git github web

好的,我会解释我的问题:

我有一个网站,让我们说一个用户可以聊天并上传头像,图像,文件等的电路板。

我想在这个网站上使用git。

所以我做了什么:

  • 使用bitbucket创建了一个repo
  • 克隆这个repo local
  • 添加.gitignore文件(见下文)
  • 将我的网站复制到我的本地仓库
  • 做了第一次提交
  • 将所有内容推送到bitbucket

Bitbucket现在拥有我的网站,但没有我忽略的文件和文件夹

我的 .gitignore 看起来像这样(例如):

uploades/user/avatars
cache/
logs/

好的下一步:

  • 我正在使用ssh登录我的网络服务器
  • 克隆bitbucket repo

现在我的网站在线没有任何用户文件(上传,图像,文件等......) 因此,如果用户现在在git忽略文件夹中升级某些内容,我希望文件保留。

当我进行本地php更改并再次将其推送到bitbucket然后在我的网络服务器上执行“git pull”时,所有用户文件都将被删除。

我想念什么?什么是最好的程序?

1 个答案:

答案 0 :(得分:0)

SSH到服务器并手动创建(?:1|2|3)[\S]+文件夹。您不希望uploades文件夹位于git中。我假设它没有任何代码,它只有用户内容 - 所以只需留在服务器上。

这就是我将本地仓库推送到远程实时服务器的方式:我在服务器上创建一个裸仓库,并将本地仓库推送到远程仓库(在本地添加原点作为远程服务器)。一旦远程仓库(在我的公共目录之外)是最新的,我会从我的其他远程仓库转到我的公共目录(public_html)和git clone。奇迹般有效。

首次设置:将本地仓库发送到远程服务器

  1. 在远程服务器上创建裸仓库:
  2. uploades

    1. 在我的本地机器上:
    2. git init --bare myproject.git

      1. 将本地更改发送到远程裸仓库
      2. git remote add origin user@ip:sshport/git_path_of_bare_repo/myproject.git

        1. 在远程服务器上,登录到您的公共目录(public_html或/ var / www /,或者您的文档根目录):
        2. git push origin master

          1. 在您的公共目录中,创建您需要的任何文件夹(上传,日志,tmp等等)。进一步的git pulls不会删除这些文件夹。
          2. 就是这样!

            从本地向远程发送更新 在本地计算机上输入:

            git clone /path/to/your/bare/repo/above/myproject.git

            现在您的本地更改已在您的远程仓库中。在您的服务器上转到您的公共目录(上面的步骤4),并提取更新:

            git push origin master

            完美适合我。