Answers:
最近在Git Wiki中添加了一些工具:
RenéMoser的git-ftp是一个简单的Shell脚本,用于通过Git方式进行FTP。使用git-ftp.sh仅将Git跟踪的文件上传到FTP服务器,该文件自上次上传以来已更改。这样可以节省时间和带宽。即使您使用不同的分支,git-ftp.sh也会知道哪些文件不同。没有普通的FTP客户端可以做到这一点。
Edward Z. Yang的git-ftp是用python编写的简单脚本,用于通过FTP在Git存储库中上传文件,仅传输新文件并删除旧文件。
如果您更喜欢GUI,请使用SourceTree,可以轻松设置使用上述git-ftp的自定义操作。在将Git存储库推送到FTP上的设置的简短说明(对于Mac)
如果您使用的是Mac,并且具有Transmit,则建议使用以下git-tranmit脚本(https://gist.github.com/379750)。它使用DockSend仅发送最近更新的文件。如果您不熟悉DockSend,请访问http://www.panic.com/blog/2010/11/15-secrets-of-transmit/。
建立:
这是PHP中的脚本,几乎可以自动将git-diff上传到FTP服务器:
一个项目免费,并且效果非常好。
这里有一个Ruby脚本- 通过FTP或SSH的Ruby git-deploy,它仅通过FTP或SSH在git repo中上传已更改的文件。
如另一个答案中所述,这是Python git-ftp.py脚本,它执行类似的操作。
这是git-ftp的shell脚本版本。
还有一个名为git-deploy的Ruby gem项目,该项目使您可以通过git remote使用git push
命令设置自定义部署,方法与Heroku和Azure服务相同。为此,您可能需要编写自定义方法以通过FTP进行部署,并且我认为它假设您具有对生产服务器的SSH访问权限。
如果要将代码投入生产,建议您使用RPM软件包之类的“安装程序”来安装代码。这样,它将被标记版本,您将能够利用安装程序包来支持对生产代码的更新。Git并不是真正为支持生产安装而设计的,它旨在跟踪对代码本身的更改。
无论如何,只要构建了.RPM(或EXE或其他文件),您都可以将其通过FTP传输到生产系统,然后像安装其他任何软件包一样安装它。
您始终可以尝试使用http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem将ftp安装到本地目录。
然后,您可以按与此相同的方式使用它。
我为此付出了很多努力。我想出了一个简单的方法来从各种来源(git-ftpINSTALL, git-ftpUPLOAD,git-ftpIssue,git-ftpPUSH)完成此任务。您可以阅读以供参考,但没有必要,因为我在下面提到了逐步过程。
首先,在MAC OS上使用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"
希望这可以帮助。
您可以尝试FTPloy ...
“将更改推送到GitHub或Bitbucket。”
“将更改自动部署到您的服务器”
您有一个免费的项目可以尝试。我目前正在使用一个小型php网站,并且效果很好。该网站上有一些错误,但它是一个活跃的项目,因此至少他们正在该网站上工作。
如果您使用的是MacOS,并且喜欢GUI,请查看https://gitftp-deploy.com/。
这是一个不错的小应用程序,它使用Git来跟踪更改并仅通过FTP上传更改的文件。
如果您不喜欢为带有小团队的数十个小型项目每月支付费用,则特别方便。