A shell script for pushing git tracked changed files to a remote host by FTP - fork to support netrc, latest git and add a few more features
Fetching latest commit…
Cannot retrieve the latest commit at this time
README of git-ftp ================= (c) René Moser, <email@example.com>, 2010 This application is licenced under GNU General Public License, Version 3.0 http://www.gnu.org/licenses/gpl-3.0-standalone.html Summary ------- Use git-ftp to upload only the files to a FTP server, which have changed since the last upload. This saves time and bandwith. About ----- I use git-ftp for my script based projects, mostly PHP. Most of the low-cost web hoster does not provide SSH nor git support, only FTP. That is why I needed a easy way to deploy my git tracked projects. Instead to transfer always the whole project, I thought, why not only transfer the files which changed since the last time, git can tell me those files. Even if you are playing with different branches, git-ftp knows which files are different. No ordinary FTP client can do that. Known Issues ------------ - Git Submodules are currently not supported. I am working on it. - See http://github.com/resmo/git-ftp/issues for open issues Installing ---------- See INSTALL file. Usage ----- $ cd my_git_tracked_project $ git ftp push ftp://host.example.com/public_html --user <user> --password <password> For interactive password prompt use: $ git ftp push ftp://host.example.com/public_html -u <user> -p Pushing the first time needs option --force or -f because it will not find any deployed sha1 hash Testing and Help ---------------- For testing mode use --dry-run alias -D $ git ftp push ftp://host.example.com/public_html --dry-run -u <user> -p For more options see: $ git ftp help Using Defaults -------------- Setting defaults for a git project in .git/config $ git config git-ftp.user john $ git config git-ftp.url ftp.example.com $ git config git-ftp.password secr3t After setting defaults, push to firstname.lastname@example.org is as simple as $ git ftp push Using Scopes ------------ For using defaults for different systems, use the so called scope feature. $ git config git-ftp.<scope>.<(url|user|password)> <value> Here I set the params for the scope "foobar" $ git config git-ftp.foobar.url ftp.testing.com:8080/foobar-path $ git config git-ftp.foobar.password simp3l Push to scope foobar alias email@example.com:8080/foobar-path using password simp3l $ git push -s foobar Because I didn't set the user for this scope, it takes the user "john" as set before in defaults. Contributions ------------- Don't hesitate to use GitHub to improve this tool. Don't forget to add yourself to the AUTHORS file.