Git:Windows服务器专有脚本库的生产环境源码控制部署问询
嘿,刚好我之前帮类似场景的团队搭建过Git管控方案,结合你们Windows服务器+供应商核心库+override自定义的情况,给你梳理一套落地性强的方案:
基于Git的生产服务器部署与源码控制方案
核心思路先理清楚
咱们的核心需求就是:既要能方便同步供应商的官方更新,又要把我方的自定义修改(override文件夹)完全隔离开,避免和供应商的代码冲突。所以核心玩法就是Git分支隔离+.gitignore精准管控,把供应商代码和我方代码的生命周期彻底分开。
第一步:初始化仓库与基础配置
- 先给Windows服务器装个Git,官网下最新版就行,记得勾选“Git Bash Here”选项,以后右键就能打开命令行,比自带的cmd顺手多了。
- 进到脚本库的根目录,右键打开Git Bash,初始化仓库:
git init - 建个
.gitignore文件,把那些不需要追踪的临时文件、日志、缓存啥的加进去,比如:
划重点:别把供应商的核心代码目录或者override文件夹写进.gitignore,这两部分我们都要追踪。# 日志文件 *.log # 临时目录 temp/ # 系统自动生成的缓存文件 *.cache
第二步:分支策略是关键!
我给你设计一套极简但够用的分支结构,绝对不搞复杂的流程:
- main分支:这是专门存供应商官方代码的“纯净分支”,只有指定的管理员能往上面推代码,团队其他人碰都不能碰。
- 操作流程:供应商发新版本时,把他们的核心代码直接覆盖到服务器上的对应目录,然后在Git Bash里提交:
git add . git commit -m "同步供应商v2.3版本官方更新"
- 操作流程:供应商发新版本时,把他们的核心代码直接覆盖到服务器上的对应目录,然后在Git Bash里提交:
- dev分支:这是咱们团队的工作分支,基于main分支创建,所有自定义修改只能在override文件夹里做,谁敢改供应商的核心代码直接拉去喝茶😉。
- 创建分支:
git checkout -b dev - 日常开发改完override里的文件后,提交推送就行:
git add override/ git commit -m "修复用户登录逻辑:调整override里的auth脚本" git push origin dev
- 创建分支:
- prod分支(可选):如果你们要区分测试和生产环境,可以加个prod分支,把dev分支里稳定的版本合并过来,专门用于生产部署,这样更稳妥。
第三步:处理供应商更新的合并
当供应商发新版本时,我们要把main分支的更新同步到dev分支,因为override是独立目录,几乎不会有冲突:
- 先切到main分支,同步完供应商的更新(就是上面main分支的操作)
- 切回dev分支,合并main分支:
git checkout dev git merge main- 万一真的出现冲突(比如供应商脑子抽了改了override目录?可能性极低),直接保留我方的override文件就行,毕竟这是咱们的自定义内容,优先级最高。
第四步:Windows部署自动化(懒癌必备)
不想每次更新都敲命令?整个批处理脚本(.bat)放在服务器上,双击就能搞定:
@echo off cd D:\你的脚本库根目录路径 git pull origin dev echo ✅ 生产环境代码更新完成! pause
以后运维或者开发人员双击这个脚本,就能拉取dev分支的最新代码,部署一步到位。
额外要盯紧的细节
- 权限管控:如果用远程仓库(比如自建Gitea、GitLab),一定要设置权限:main分支只有管理员能推送,dev分支允许团队推送,但禁止直接修改main分支。
- 备份!备份!备份!:定期把Git仓库打包备份到其他存储介质,比如外接硬盘或者云存储,服务器挂了也不怕丢代码。
- 团队规则要咬死:给所有人强调:绝对不能在dev分支修改供应商的核心代码,所有自定义必须放在override文件夹里,这个红线绝对不能碰,不然以后合并更新会炸锅。
内容的提问来源于stack exchange,提问作者Toolsmythe
相关产品推荐
相关产品推荐

