如何将本地 Git 仓库同步到服务器?分步指南
安装 Git
确保本地和服务端均已安装 Git:
# 检查 Git 是否安装 git --version # 若未安装,执行安装命令(以 Ubuntu 为例) sudo apt-get install git
获取服务器权限
确保拥有服务器的 SSH 访问权限,并已配置账户(如 root
或自定义用户)。
裸仓库不包含工作区文件,仅存储提交历史,适合作为远程仓库:
# 登录服务器 ssh username@server_ip # 创建仓库目录 mkdir -p /path/to/your-repo.git cd /path/to/your-repo.git # 初始化裸仓库 git init --bare
为安全高效同步,建议使用 SSH 密钥而非密码:
本地生成密钥对(若已有可跳过):
ssh-keygen -t ed25519
默认存储在 ~/.ssh/id_ed25519.pub
。
将公钥上传到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip
cd /your/local/project git init git add . git commit -m "Initial commit"
将服务器仓库设为远程仓库(通常命名为 origin
或 server
):
git remote add server ssh://username@server_ip:/path/to/your-repo.git
将本地分支(如 main
)推送到服务器:
git push server main # 若需设置为默认推送目标 git push -u server main
若多人协作,需定期拉取服务器最新代码:
git pull server main
Git 钩子
在服务器仓库的 hooks/post-receive
中编写脚本,实现自动部署:
# 示例:将代码检出到网站目录 #!/bin/sh git --work-tree=/var/www/html --git-dir=/path/to/your-repo.git checkout -f
CI/CD 工具
结合 Jenkins、GitHub Actions 等工具,实现代码提交后自动测试并同步到服务器。
权限问题
确保服务器目录的读写权限:
chmod -R 755 /path/to/your-repo.git chown -R username:group /path/to/your-repo.git
连接失败
检查 SSH 配置、防火墙设置及网络连通性:
ssh -T username@server_ip # 测试 SSH 连接
冲突处理
若多人同时修改同一文件,需手动解决冲突后重新提交。
备份策略
定期使用 git clone --mirror
备份服务器仓库,或启用云存储快照。
引用说明