无需FTP:如何通过Git远程Master分支更新Hostgator生产服务器文件
嘿,我完全懂你这种反复FTP上传的痛苦——团队协作下不仅慢,还容易漏传文件、搞版本混乱。下面给你两种实用方法,直接用GitHub的master分支同步Hostgator生产环境,彻底告别FTP:
Hostgator的共享主机和VPS都支持SSH访问,先确认你的账户已经开启SSH(找不到入口就找客服开,免费的),然后按步骤来:
第一步:在Hostgator服务器上关联GitHub仓库
用SSH工具登录服务器后,先cd到你的网站根目录(比如public_html),先把现有文件备份好(比如打包成zip:zip -r backup.zip .),然后初始化Git仓库并关联远程:# 初始化本地仓库 git init # 关联你的GitHub仓库(选SSH或HTTPS都可以,SSH更方便不用每次输密码) git remote add origin git@github.com:你的用户名/你的仓库名.git # 如果用HTTPS:git remote add origin https://github.com/你的用户名/你的仓库名.git第一次拉取master分支:
git pull origin master如果用SSH方式,记得把Hostgator服务器生成的SSH公钥(
cat ~/.ssh/id_rsa.pub)添加到GitHub账户的SSH设置里,这样后续拉取就不用输密码了。第二步:后续更新只需一行命令
以后团队成员把代码推到GitHub master后,你登录SSH执行:cd /path/to/your/site git pull origin master几秒钟就能同步最新代码,比FTP快太多。
如果不想每次手动登服务器拉取,可以搞自动化——每次代码推到master分支,GitHub自动帮你部署到Hostgator:
第一步:配置SSH密钥权限
先在本地生成一对SSH密钥,把私钥存到GitHub仓库的Secrets里(仓库→Settings→Secrets and variables→Actions→New repository secret,命名为HOSTGATOR_SSH_KEY);然后把公钥添加到Hostgator服务器的~/.ssh/authorized_keys文件里,确保GitHub能通过SSH登录你的服务器。第二步:创建自动部署工作流
在你的GitHub仓库根目录新建.github/workflows/deploy.yml文件,内容如下:name: 自动部署到Hostgator生产环境 on: push: branches: [ master ] # 只有推master分支时触发 jobs: deploy: runs-on: ubuntu-latest steps: - name: 拉取最新代码 uses: actions/checkout@v4 - name: 通过SSH部署到服务器 uses: appleboy/ssh-action@v1.0.3 with: host: 你的Hostgator服务器IP或域名 username: 你的SSH用户名 key: ${{ secrets.HOSTGATOR_SSH_KEY }} port: 22 # 部分Hostgator服务器用自定义端口,看你的SSH信息 script: | cd /path/to/your/site git pull origin master # 如果有依赖需要更新,比如composer install或npm install,这里可以加对应的命令保存后推到GitHub,以后每次团队推代码到master,GitHub就自动帮你完成部署,完全不用管。
- 先备份! 不管用哪种方法,先把服务器上的现有文件备份好,避免Git拉取时覆盖重要数据(比如用户上传的图片、配置文件)。
- 配置.gitignore 一定要把不需要同步的文件(比如
uploads文件夹、.env敏感配置)加到.gitignore里,别把用户数据或敏感信息推到GitHub,也避免覆盖服务器上的独有文件。 - Hostgator权限问题 如果是共享主机,可能遇到Git版本过低或目录权限问题,直接找Hostgator客服,他们一般能快速帮你解决。
内容的提问来源于stack exchange,提问作者Andrew C. Duarte

