【问题标题】:Git from local to FTP (not working copy)Git 从本地到 FTP(不是工作副本)
【发布时间】:2012-07-13 16:32:12
【问题描述】:

将我的本地存储库推送(发布)到 bitbucket 和我的共享主机 (hostgator) 的最佳方式是什么?

我正在使用带有 Git 的 Windows。

实际上,我可以 git push 到 bitbucket 并工作。但我想在我的 FTP(共享主机)中发布,但我认为只发布文件而不是 .git 文件夹,换句话说,工作副本(克隆)很好。

实际上我通过 git bash 访问 ssh,然后点击 git clone ... 但这不是一个好/更好的方式(我认为)。

所以我看到了这个链接:http://github.com/resmo/git-ftphttp://github.com/ezyang/git-ftp 但我想知道是否存在更好的方法来做到这一点,而不必安装 python 或其他软件,如 cygwin。

我的项目很小(大约 3mb),所以没有必要只发送更改的文件。可以是所有文件。

我查看了很多关于此的链接,并尝试了其他方法,但也许有一种很好且简单的方法可以做到这一点……因为我来到 stackoverflow 寻求您的所有帮助。

【问题讨论】:

    标签: php git deployment ssh


    【解决方案1】:

    您有几种不同的选择:

    1) 在本地创建一个脚本,该脚本执行 git push 到 bitbucket,git checkout-index -a -f --prefix=/destination/path/ 到本地目录,然后 ftp 的本地目录到您的 ftp 服务器。

    2) 在 ftp 服务器上创建一个指向裸存储库的新远程,然后在 ftp 服务器上创建一个执行 git checkout-index -a -f --prefix=/destination/path/ 的 post-receive 挂钩。设置完成后,您将执行 git pushgit push ftp(如果需要,可以将其别名为一个命令)

    3) 使用 git archive 指向远程存储库:git archive --format=tar --remote=ssh://remote_server/remote_repository master | (cd /path/to/dir/ && tar -xf -) 显然,您希望为此命令创建一个别名。

    【讨论】:

    • 我已经尝试过类似您的第二项:net.tutsplus.com/tutorials/other/… 但没有用...我不知道为什么,可能是因为在本教程中他使用的是 Github 而不是 Bitbucket。但是没有用。
    • 看起来可行。但是,我不熟悉 bitbucket 的工作原理,所以我不能在那里为您提供建议。但是,如果您将推送到 bitbucket 和推送到您的 ftp 站点分开,那么推送到 ftp 站点将与 bitbucket 无关。您仍然可以将两个推送合并到一个别名中,因此它是一个命令。您只需使用一个命令推送到两个站点,而不是通过 bitbucket 进行 ftp 推送。
    • 我正在尝试第二个选项。我必须将此代码放在哪里:git checkout-index -a -f --prefix=/destination/path/?在 PHP 文件中?然后上传到bitbucket的POST服务?这段代码可以在 PHP 文件中使用吗? @wadesworld
    • 不,正如我所说,它在 ftp 站点上的 git 存储库中的 post-receive 挂钩中。见【Git Hook 讲解】(git-scm.com/book/en/Customizing-Git-Git-Hooks)
    猜你喜欢
    • 2011-11-06
    • 2014-03-25
    • 2011-05-12
    • 2018-09-19
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多