Git 推入生产(FTP)

我想知道是否有一种简单的方法可以将 GIT 存储库推入生产环境(在 FTP 服务器上) ? 谢谢

101543 次浏览

如果要将代码投入生产,我建议使用“安装程序”(如 RPM 包)来安装代码。这样,它将被版本标记,您将能够利用安装程序包来支持对生产代码的更新。Git 的设计并不是为了支持生产安装,而是为了跟踪对代码本身的更改。

无论如何。构建了 RPM (或 EXE 或者其他什么) ,你可以将它 FTP 到生产系统并像安装其他软件包一样安装它。

添加它作为一个远程,然后您可以推到它,然而简单地推代码是不够的,它需要与工作树合并。最简单的方法是反过来,在服务器上创建一个工作树,然后获取并合并到其中。

严格来说,Git 不是干这个的。然而,如果你的源代码是不需要编译或处理的,比如一个网站包含 html 和 javascript 文件等等,你可以在你的网络服务器上克隆一个回购文件,并使用服务器上的 git pull来保持它的更新。注意,我会将您的 webserver 配置为隐藏 git 目录等等。这只是安全问题的开始。

如果您有任何类型的编译或处理,您应该开始查看 蚂蚁玛文BuildRSBT等。

基特维基最近增加了一些工具:

René Moser 的 git-ftp 是一个简单的 用于 FTP Git 的 shell 脚本 使用 git-ftp.sh 只上载 Git 跟踪文件到 FTP 服务器, 自从上次以来已经改变了 上传。这节省了时间和带宽。 即使你玩不同的 Git-ftp.sh 知道哪些文件 是不同的。没有普通的 FTP 客户端 能做到。

Git-ftp by Edward Z. Yang is a 用 python 编写的简单脚本 在 Git 存储库中上传文件 通过 FTP,只传输新文件 删除旧文件。

如果您使用的是 Mac,并且使用了 Transport,我建议使用下面的 git-傳输脚本(https://gist.github.com/379750)。它使用 DockSend 仅发送最后更新的文件。如果您不熟悉 DockSend,请查看 http://www.panic.com/blog/2010/11/15-secrets-of-transmit/

设置:

  1. Cp git-trans/usr/sbin/.
  2. Cd/usr/sbin
  3. Chmod + x git 传输
  4. 安装下拉发送您的现场应用程序
  5. 在您的 git 存储库中运行 git 传输。

这里有一个 Ruby 脚本—— Ruby git-通过 FTP 或 SSH 进行部署,它只通过 FTP 或 SSH 上传 git repo 中更改过的文件。

正如在另一个答案中提到的,这里是 Python git-ftp.py 脚本,它做了类似的事情。

这是 Git-ftp的 shell 脚本版本。

还有一个名为 Git 部署的 Ruby gem 项目,它可以让你使用 git push命令通过 git 远程设置自定义部署,就像 Heroku 和 Azure 服务一样。对于这个问题,您可能需要编写通过 FTP 部署的自定义方法,而且我认为它假设您对生产服务器具有 SSH 访问权。

这是一个用 PHP 编写的脚本,几乎可以自动将 git-diff 上传到 FTP 服务器:

Http://code.google.com/p/upload-git-diff-with-ftp/

如果您更喜欢 GUI,那么使用 SourceTree,您可以轻松地设置一个使用上面提到的 git-ftp 的自定义操作。关于在 将 Git 存储库推送到 FTP上安装(针对 Mac)的简要说明

enter image description here

我发现 PHPLAY是一个通过 FTP 向远程服务器发送 Git 提交的很好的工具。它从命令行工作,并用 PHP 编写(甚至检测子模块中的更改)。

Https://github.com/banago/phploy

git commit ...
phploy -s staging
phploy -s production

成交!

(免责声明: 使用一段时间后,我现在贡献了一些代码补丁和改进,使其与 Windows 兼容。)

您总是可以尝试使用 http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem将 ftp 挂载到本地目录。

然后你可以像使用 这个一样使用它。

我费了好大劲才想明白。我已经想出了一个简单的方法,从各种来源(Git-ftpINSTALLGit-ftpUPLOADGit-ftp 问题Git-ftpPUSH)完成这一点。你可以阅读作为参考,但是没有必要,因为我已经在下面提到了一步一步的过程。

首先: 在 MAC 操作系统上使用 brew 安装 git 和 curl

brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp

运行以下命令:

git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

使用 git 更新

git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

设置

git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword

上传所有文件

git ftp init

或者文件是否已经存在

git ftp catchup

工作和部署

echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push

如果有 错误: pathspec‘ index.txt’与 git 已知的任何文件都不匹配。这意味着文件还没有上演,所以添加文件,然后尝试提交。

git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"

希望这个能帮上忙。

你可以试试 FTP 策略。

Https://ftploy.com

“将更改推送到 GitHub 或 Bitbucket”

“自动将更改部署到服务器”

你有一个免费的项目来尝试它。我目前使用的一个小 PHP 网站,它的工作相当不错。网站上的一些错误,但它是一个活跃的项目,所以至少他们正在工作。

Https://www.deployhq.com/

免费的一个项目,它工作得非常好。

你可以使用 Deployhq.com它的工作原理就像一个魅力,你唯一需要做的事情是建立你的存储库和 FTP 帐户。

它们目前的版本控制系统如下:

Git Subversion Mercurial.

存储库托管

  • GitHub
  • 比特巴克特
  • GitLab
  • 代码库

enter image description here

如果您使用 MacOS 并且喜欢 GUI,请查看 https://gitftp-deploy.com/

这是一个不错的小应用程序,它使用 Git 跟踪更改,并使用 FTP 只上传更改后的文件。

如果你不喜欢每月支付几十个小团队的小项目的费用,那么这个方法尤其方便。