首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
共享服务器环境下的 Git 代码同步、权限隔离与后端部署流程
📅 2026/10/8 23:01:27
✍️ 爱科研究院
👁 阅读 3,247
1. 背景在实际开发中一台服务器往往并不是只运行一个项目。可能同时存在服务器 ├── 项目 A 后端 ├── 项目 B 后端 ├── 项目 C 服务 └── 我的后端服务这种情况下如果直接在服务器上修改代码很容易出现修改到其他人的目录重启到其他人的服务占用别人的端口覆盖线上代码无法追踪版本本地和服务器代码不一致因此更合理的方式是使用 Git 作为代码源以本地开发为主服务器仅负责拉取和运行自己的代码。2. 整体架构最终流程本地开发环境 ↓ git push ↓ GitHub / Git 仓库 ↓ git pull ↓ 共享服务器 ↓ 自己的 backend ↓ 独立端口运行服务器不是开发源而是部署端。3. 共享服务器上的目录隔离假设服务器有多个用户/home/ ├── userA/ ├── userB/ └── art/自己的项目只放/home/art/projects/例如/home/art/projects/project-name/ └── backend/这样可以做到只操作自己的目录不修改其他项目。4. Git 与服务器的关系服务器本身并不是“登录 GitHub”。更准确地说服务器上的某个 Linux 用户通过 SSH Key 获得 Git 仓库访问权限。关系如下Linux 用户 art ↓ SSH 私钥 ↓ GitHub ↓ 对应仓库SSH Key 包含私钥保存在服务器 公钥添加到 GitHub私钥~/.ssh/id_ed25519公钥~/.ssh/id_ed25519.pub5. 检查 Git 和 SSHUbuntu 上先检查git --version ssh -V如果已经安装可以直接继续。例如git version 2.43.0 OpenSSH_9.6p16. 配置 Git 身份设置提交身份git config --global user.name your-name git config --global user.email your-email检查git config --global --list注意Git 用户名和 SSH 登录权限不是一回事。Git config 主要用于标记 commit 作者。7. 创建 SSH Key执行ssh-keygen -t ed25519 -C server-git生成~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub查看公钥cat ~/.ssh/id_ed25519.pub将内容添加到 GitHubSettings → SSH and GPG keys → New SSH key8. 测试 GitHub 连接执行ssh -T gitgithub.com第一次通常会出现Are you sure you want to continue connecting?输入yes这是因为服务器第一次连接 GitHub需要保存 GitHub 的主机指纹。之后会写入~/.ssh/known_hosts如果认证成功说明服务器已经拥有仓库访问权限。9. Monorepo 项目结构如果 App 和后端放在一个 Git 仓库中可以这样组织project/ ├── android/ ├── backend/ ├── assets/ ├── scripts/ ├── tests/ ├── docs/ └── README.md这种方式叫Monorepo也就是多个相关模块放在同一个 Git 仓库中。10. 服务器只拉取 backend服务器通常不需要 Android 源码。可以使用 Git Sparse Checkout。第一次git clone --filterblob:none --no-checkout gitgithub.com:user/project.git cd project git sparse-checkout init --cone git sparse-checkout set backend git checkout main这样服务器工作目录主要只会出现backend/而不会把整个 Android 工程展开。11. 后续服务器同步代码本地开发git add . git commit -m feat: add backend API git push origin main服务器cd /home/art/projects/project git pull origin main这样服务器就能同步最新代码。12. 不影响其他人的关键原则共享服务器上必须做到几项隔离目录隔离自己的目录 /home/artifex/projects/project不要修改别人的目录。端口隔离例如项目 A3000 项目 B3001 我的项目3100自己的服务使用独立端口。进程隔离如果使用 PM2pm2 start npm --name my-backend -- start重启pm2 restart my-backend不要使用pm2 restart all否则可能影响其他人的服务。环境变量隔离自己的backend/.env只对应自己的服务。数据库隔离开发环境尽量不要直接使用生产数据库。13. 推荐开发流程完整流程本地修改 ↓ git status ↓ git add ↓ git commit ↓ git push ↓ 服务器 git pull ↓ 重启自己的后端服务器原则只部署不开发。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/8 23:01:27
9.30号小游戏任务
2026/10/8 22:56:27
VibeWise新手第一课:/vibe-wise:learn完整上手指南,第一次运行全流程详解
2026/10/8 22:56:27
《高频电子电路与宽带通信》全套PPT课件2026
2026/10/8 23:51:34
update gop 实战:动态调整关键帧间隔优化首屏与抗丢包
2026/10/8 23:51:34
CTF工具包搭建指南:按题型分类的环境配置与避坑实践
2026/10/8 23:51:34
XXL-JOB 容器化部署实战:K8S 集群 YAML 配置与避坑指南
2026/10/8 23:51:34
XXL-JOB 上 K8S 部署实战:验证版 YAML 一次跑通与避坑指南
2026/10/8 23:51:34
离线部署Rancher V2.4.5:镜像清单全准备与五大避坑指南
2026/10/8 23:46:34
How to Write a Linux Health Check Script (With Examples)
2026/10/8 0:04:11
Agent Skills 完全指南:原理、写法、安装与实战避坑
2026/10/8 0:04:11
Agent Skills 实战:从 Genkit 定义到 GKE 部署与排查
2026/10/8 0:04:11
Agent Skills 实战:从设计到调试的完整指南
2026/10/8 5:02:14
Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化
2026/10/7 9:55:49
多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系
2026/10/7 14:02:03
hindsight:面向LLM应用的事后可观测性工程实践
2026/10/8 4:30:43
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/8 2:46:15
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/8 4:32:33
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)